2017-05-08 33 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