2011-12-22 25 views
45

我需要检查我的模型是否在我的剃刀视图内有效。如果它是有效的,那么我希望能够显示一些HTML。如何从剃须刀视图内检查我的模型是否有效?

我该怎么做。我想是这样

@if (Model.IsValid) { 

} 

但上述方法无效

+0

我讨厌这个问题,但为什么?我能想到的唯一情况是,如果您由于某种原因不允许使用jQuery验证。 – Peter 2011-12-22 05:30:48

+3

@Peter(以及其他任何具有相同问题的人),想象你想要输出一个'div'元素*,但前提是*先前提交的信息是无效的。为无效登录凭证输出警报的容器元素。 – 2014-03-28 20:12:37

+0

@亲爱的朋友,请说明一下:你正在上传一个文件,想检查它是否有正确的格式,你可以在javascript上做到这一点吗? - 不,你不能!因此,您可以在服务器端进行检查,如果失败,您可以向ModelState添加一个错误,以便将其显示在页面上。 – 2017-12-21 13:22:35

回答

74

您可以检查ModelState中是否是有效的,但请记住,你只检查ModelState中的有效性在当时web请求作出:

@if (ViewData.ModelState.IsValid) { 
    ... 
} 

此外,还可以检查属性validatity在视图模型:

@if (ViewData.ModelState.IsValidField("FIELD_NAME")) { 
    ... 
} 
+3

+1当模型状态被验证时提及。 – 2013-10-21 00:42:27

+0

传递给“IsValidField”的'FIELD_NAME'必须是与整个ViewModel层次相关的**全名**。 – 2016-11-21 23:26:18

相关问题