在剃刀视图中的<script>标签内的C#'if'关键字

gdo*_*ica 19 javascript c# razor asp.net-mvc-3

我正在尝试在ASP.Net-MVC razor视图中编写以下代码,但该页面将无法编译.

<script>     

    @(if (Model.IsValid))
     {
        ("#ErrorMessage).text("Error");
     }
    else
    {
       ("#Registration).text("Done!");
    }

</script> 
Run Code Online (Sandbox Code Playgroud)

我为实现该操作做了一些变通方法,但有一种简单的方法吗?

Dar*_*rov 45

试试这样:

<script type="text/javascript">
    @if (ViewData.ModelState.IsValid)
    {
        <text>$('#ErrorMessage').text('Error');</text>
    }
    else
    {
        <text>$('#Registration').text('Done!');</text>
    }
</script>
Run Code Online (Sandbox Code Playgroud)

需要注意的事项:

  • 的使用ViewData.ModelState.IsValid,以测试是否有错误的ModelState
  • 使用特殊<text>来指示剃刀解析器按原样使用文本
  • $函数的用法,因为我认为这是jQuery代码
  • 正确关闭javascript字符串周围的引号
  • type="text/javascript"脚本标记上的属性用法.