我正在尝试在ASP.Net-MVC razor视图中编写以下代码,但页面无法编译。
<script>
@(if (Model.IsValid))
{
("#ErrorMessage).text("Error");
}
else
{
("#Registration).text("Done!");
}
</script>
我为实现该操作做了一些变通方法,但有一种简单的方法吗?
答案 0 :(得分:42)
试试这样:
<script type="text/javascript">
@if (ViewData.ModelState.IsValid)
{
<text>$('#ErrorMessage').text('Error');</text>
}
else
{
<text>$('#Registration').text('Done!');</text>
}
</script>
需要注意的事项:
ViewData.ModelState.IsValid
来测试是否存在模型状态错误<text>
来指示剃刀解析器按原样使用文本$
函数,因为我认为这是jQuery代码type="text/javascript"
属性。答案 1 :(得分:2)
这是一种可能看起来更好的解决方法:
<script>
var modelIsValid = '@ViewData.ModelState.IsValid' == '@true';
if(modelIsValid)
{
$("#ErrorMessage").text("Error");
}
else
{
$("#Registration").text("Done!");
}
</script>
使用'@true'确保真正的字符串始终正确(而不是像'True'那样硬编码)。