簡體   English   中英

動態顯示Razor ValidationMessageFor

[英]Dynamically show Razor ValidationMessageFor

我在頁面頂部進行了一些驗證。 我想只在有錯誤的情況下動態顯示水平行。

<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>

我想要做的是在Razor語法中有這樣的東西

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

我試圖找出剃刀中的語法,我可以動態顯示水平行。 有什么建議??

如果只想在出現錯誤時顯示錯誤消息。您可以通過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>
}

只是不要將它們視為單獨的行。 默認情況下,只有在有理由的情況下才會顯示驗證消息。 因此,您可以這樣做:

<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>

然后,無論哪一個都有驗證錯誤都會顯示,而另一個則不會。 無需手動檢查錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM