繁体   English   中英

Javascript变量包含asp.net mvc剃刀代码而不是值

[英]Javascript variable contains asp.net mvc razor code instead of value

我有以下声明:

<script type="text/javascript">
            @{
                string area = ViewContext.RouteData.DataTokens["area"] != null ? 
                    ViewContext.RouteData.DataTokens["area"].ToString().ToLower() : 
                    string.Empty;
            }


        var area = "@area";

</script>

我的Google Chrome浏览器(如果我在控制台中调用area变量)显示如下:

" != null ? ViewContext.RouteData.DataTokens["area"].ToString().ToLower() : """

这是C#代码的一部分...

错误在哪里?

当您尝试在脚本块中使用剃刀时出现问题。

这个问题的答案令人惊讶: Razor语法和Javascript

因此,您应该将代码修改为

 @{
    string area = ViewContext.RouteData.DataTokens["area"] != null ? 
                  ViewContext.RouteData.DataTokens["area"].ToString().ToLower() : 
                  string.Empty;
  }
<script type="text/javascript">               
    var area = "@area";    
</script>

或将代码包装在伪块中(或@:如果您使用的是较新版本的MVC)

<script type="text/javascript">
            @{
              <text>  string area = ViewContext.RouteData.DataTokens["area"] != null ? 
                    ViewContext.RouteData.DataTokens["area"].ToString().ToLower() : 
                    string.Empty;</text>
            }    

        var area = "@area";    
</script>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM