我有一个像这样的ajax形式:
<% using (Ajax.BeginForm("Comments", "Comments", null, new AjaxOptions {UpdateTargetId="main", OnSuccess="createSuccess" }, new{ @id="main"})) {%>
<%: Html.ValidationSummary(true, "errors") %>
<fieldset>
<legend>Fields</legend>
<div class="editor-label">
<%: Html.LabelFor(model => model.Body) %>
</div>
<div class="editor-field">
<%: Html.TextBoxFor(model => model.Body) %>
<%: Html.ValidationMessageFor(model => model.Body) %>
</div>
<div class="editor-label">
<%: Html.LabelFor(model => model.Name) %>
</div>
<div class="editor-field">
<%: Html.TextBoxFor(model => model.Name) %>
<%: Html.ValidationMessageFor(model => model.Name) %>
</div>
<p>
<input type="submit" value="Submit" />
</p>
</fieldset>
<% } %>
<div id="Success" style="display:none;">
New entry successfully entered
</div>
<script type="text/javascript">
function createSuccess(context)
{
if ($(".validation-summary-errors").length > 0) {
return;
}
$('#main').clearForm()
$('#Success').show();
}
这是检查表单是否成功提交的正确方法吗?如果验证摘要的类名更改怎么办?有更好的方法吗?
感谢
答案 0 :(得分:0)
你肯定是在正确的轨道上。需要注意的重要一点是,为了填充服务器端验证消息,需要使用Comments操作返回包含上面表单的部分,因为当ajax调用返回时,它将替换任何具有id =“主要的“(你的表格),以及行动的结果。