2017-05-08 36 views
1

我有几个验证,我已经在页面顶部。我只想在出现错误时动态显示水平行。动态显示剃刀验证消息对于

<tr><td colspan="4">@Html.ValidationMessageFor(model => model.tempHouseHoldSSNVerification, null, new { style = "color:red" })</td></tr> 
<tr><td colspan="4">@Html.ValidationMessageFor(model => model.tempHouseHoldCitizenVerification, null, new { style = "color:red" })</td></tr> 

我想要做的是,在剃刀语法有这样的事情

@if (model.tempHouseHoldSSNVerification isinvalid) 
{ 
    <tr><td colspan="4">@Html.ValidationMessageFor(model => model.tempHouseHoldSSNVerification, null, new { style = "color:red" })</td></tr> 
} 

我试图找出剃须刀语法,我可以动态显示的水平行。任何建议?

回答

3

只有在出现错误时才显示错误消息。您可以通过ViewContext.ViewData.ModelState使用ModelState确认。

例子:

@if (!ViewContext.ViewData.ModelState.IsValid) 
{ 
    <tr> 
    <td colspan="4">@Html.ValidationMessageFor(model => model.tempHouseHoldSSNVerification, null, new { style = "color:red" }) 
    </td> 
    </tr> 
} 
0

只是不要把他们当作单独的行。默认情况下,验证消息只有在有原因时才会显示。因此,你可以这样做:

<tr> 
    <td colspan="4"> 
     @Html.ValidationMessageFor(model => model.tempHouseHoldSSNVerification, null, new { style = "color:red" }) 
     @Html.ValidationMessageFor(model => model.tempHouseHoldCitizenVerification, null, new { style = "color:red" }) 
    </td> 
</tr> 

然后,无论哪一个有验证错误将显示,而其他不会。无需手动检查错误。

+0

然后错误信息将显示在一行中 – user6815384

+0

如果* both *错误将同时显示,那么只需将它们单独包装在某些块级标签(如“div”)中。 –

+0

我想任何一种方法的作品!谢谢。 – user6815384