如何根据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