2017-05-08 12 views
1

私はページの上にいくつか検証しました。私は、エラーがある場合にのみ水平行を動的に表示したいと考えました。私がやりたいこと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> 

は、カミソリの構文で、私は私が動的に水平方向の行を表示することができますかみそりで構文を見つけるためにしようとしています。この

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

のようなものを持っているということです。なにか提案を??

答えて

3

エラーがある場合にのみエラーメッセージを表示する場合は、ModelStateの有効性確認をViewContext.ViewData.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

エラーメッセージが1行に表示されます – user6815384

+0

*両方のエラーが同時に表示される場合は、両方をdivレベルのようなブロックレベルのタグで個別にラップします。 –

+0

私はいずれの方法もうまくいくと思います!ありがとうございました。 – user6815384

関連する問題