我遇到了一个问题,希望你能帮我解决。
我有一个包含多个字段的表单,其中很少有远程验证。
@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>