我有一个小的 Ajax 应用程序,我在其中使用 Razor 视图来最初生成 HTML 表单段,后来我使用 knockout.js 从中读取和写入。虽然我没有执行非 Ajax 操作请求,但我使用 Razor 生成 HTML,因此我喜欢自动生成 jQuery Validation 属性。例如,在我的单个页面中,我呈现了一个隐藏的表单,如下所示:
<section id="person-detail">
@Html.Action("EditPartial", "Person")
</section>
该EditPartial
操作返回一个看起来很像这样的局部视图:
@using (Html.BeginForm())
{
<fieldset>
@Html.HiddenFor(model => model.Id, new { data_bind = "value: id" })
<div class="editor-label">
@Html.LabelFor(model => model.FirstName)
</div>
<div class="editor-field">
@Html.TextBoxFor(model => model.FirstName, new { data_bind = "value: firstName" })
@Html.ValidationMessageFor(model => model.FirstName)
</div>
<p>
<a href="#" data-bind="click: save">Update</a>
<a href="#" data-bind="click: delete">Delete</a>
</p>
</fieldset>
}
因为我实际上从未发布过表单,并且由于一些未知因素,尽管我Person
模型上的所有属性都标有该Required
属性,但我看不到客户端验证的迹象。单击保存按钮时,我必须做什么才能触发此验证?