問題が発生しました。問題の解決にご協力いただければ幸いです。
いくつかのフィールドを含むフォームがあり、そのうちのいくつかはリモートで検証されています。
@using (Html.BeginForm("Action", "Controller", new { id = "myForm" }))
{
@Html.AntiForgeryToken()
<table>
<tr>
<td width="225">Work permit/Registration card:</td>
<td>Start date: @Html.EditorFor(m => m.WorkPermitStart)</td>
<td width="50"></td>
<td>End date: @Html.EditorFor(m => m.WorkPermitEnd)</td>
<td>@Html.ValidationMessageFor(m => m.WorkPermitEnd)</td>
</tr>
</table>
<li><button type="submit" value="submit" class="form-yes">submit</button></li>
}
このようなコードは問題なく動作し、WorkPermitEnd 入力がフォーカスを失ったときにリモート検証が行われ、フィールドが無効な場合、期待どおりに次のテーブル セルにメッセージが表示されます。
私の問題は、それを変更して、検証メッセージをフォーム自体の外、まったく別のセクションに配置する必要があることです。そして、これは私が適切な解決策を見つけるのに苦労しているところです.フォームコンテキストを失うとき、
@Html.ValidationMessageFor(m => m.WorkPermitEnd)
機能せず、元の形式の入力の検証メッセージが表示されません。私の質問は、検証メッセージをページの別のセクションに渡す方法はありますか?
編集:ページのレイアウトを追加
<section id="content">
@RenderBody()
</section>
<aside id="messages">
<aside id="validation">
@RenderSection("ValidateMessage", required: false)
</aside>
<aside id="help">
@RenderSection("Help", required: false)
</aside>
</aside>