如何根据ViewBag的值调用javascript方法
我正在研究小型mvc应用程序,在我的视图中有一个tab控件,它有3个选项卡,根据ViewBag值,我需要打开我的第三个选项卡,这里是我的视图的外观图像:
因此,当加载View时,我需要检查我的ViewBag的值,并根据我需要打开我的TAB 3,所以这是我尝试过的:
正如你可以看到人们依赖于一个值ViewBag.SuccessBody我试图加载相应的HTML,所以如果有一个值,那么我将加载包含TAB3的HTML自己的class="active"
(请阅读详细的代码)。
但不幸的是,这种方法,TAB3变得活跃但不开放,所以它的内容不可见,它在TAB1上保持正常,而TAB3看起来像是活跃的,这很糟糕:(。
所以我做的是:
我写的javasscript方法应该真的打开TAB3,但是我不知道如何调用它所以我想我可以在我的li
元素上使用onload
方法调用它,所以你可以在上面的代码中看到我在li上写的
onload="RedirectToTab();"
但不幸的是没有任何事情发生..
这里是我的RedirectToTab javascript方法的定义:
function RedirectToTab() { var customVal = $("#editViewBag").val(); if (customVal == 'True') { $('#myTab a[href="#tab_content3"]').tab('show'); } }
那么伙计,我怎么能打开TAB3取决于我的ViewBag的vaue?
谢谢你们干杯
只需使用剃刀引擎在javascript中输出您的ViewBag值:
function RedirectToTab() { var customVal = '@ViewBag.SuccessBody'; if (customVal == 'True') { $('#myTab a[href="#tab_content3"]').tab('show'); } }
现在您可以从doc ready中调用它:
$(document).ready(function () { RedirectToTab(); });
您无需使用JavaScript来打开选项卡。 您可以使用Razor视图,这样可以在页面加载时看不到活动标签从1到3的切换。 这是一个包含3个选项卡的简单示例:
@{ string tab1 = null, tab2 = null, tab3 = null; if (ViewBag.SuccessBody == null) { tab1 = "active"; } else { tab3 = "active"; } } tab 1 tab 2 tab 3