1

我正在使用剃须刀模板,以下是场景

$(function(){
   //if (ViewBag.IsCallFunction){
      somefunction();
   //
  //do something else
});

如果存在 viewBag 变量,即不为 ​​null 并且设置为 true,那么我想调用一些 javascript 函数。我该怎么做呢?

4

3 回答 3

1
@{if(ViewBage.somevalue!=null && ViewBage.somevalue=="true")
  {
   <script type="text/javascript">
   somefunction();
   </script>
  }
}

但请记住,这将被称为渲染,根据 OP,你不能调用它,你可以渲染它,所以在加载文档时在 document.ready 中调用它

于 2012-07-03T19:33:51.223 回答
0
<script type="text/javascript">
$(function() {
    @if (ViewData.ContainsKey("IsCallFunction") && ViewBag.IsCallFunction) 
    {
        <text>somefunction();</text>
    }
});
</script>

但我建议您使用视图模型而不是 ViewBag,因为在这种情况下您的代码可以简化:

<script type="text/javascript">
$(function() {
    @if (Model.IsCallFunction) 
    {
        <text>somefunction();</text>
    }
});
</script>
于 2012-07-03T19:31:18.753 回答
0

您不会从 Razor 代码调用JavaScript 函数,因为 Razor 在服务器上运行,而 JavaScript 在客户端上运行。

相反,您可以向客户端发出 JavaScript 代码,然后在浏览器加载 Razor 生成的 HTML 代码后运行。

你可以做类似的事情

<script type="text/javascript">
@* The following line is Razor code, run on the Server *@
@if (ViewData.ContainsKey("IsCallFunction") && ViewBag.IsCallFunction) { 
@* The following lines will be emitted in the generated HTML if the above condition is true *@
$(function(){
      somefunction();
  //do something else
});

@} @* This is the closing brace for the Razor markup, executed on the Server *@
</script>
于 2012-07-03T19:32:15.600 回答