jquery ajax发布和服务器端验证消息的帮助
问题描述:
任何人都知道jquery axax post的工作示例,从服务器返回的验证消息突出显示相关的表单字段?jquery ajax发布和服务器端验证消息的帮助
该表单应该是局部视图吗?是否有可能使用modelstate?
干杯
答
实施例附:
部分:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
<div id="subContent">
<fieldset>
<legend>Subscribe</legend>
<form id="subForm" method="post" action="<%= Url.Action("Subscribe") %>">
<%= Html.ValidationSummary("Subscribe was unsuccessful. Please correct the errors and try again.") %>
<input type="text" name="name" id="name" /><%= Html.ValidationMessage("name", "*") %>
<input type="submit" />
</form>
</fieldset>
</div>
<script language="javascript" type="text/javascript">
$(document).ready(function() {
$('#subForm').live('submit', function() {
$.post($(this).attr('action'), $(this).serialize(), function(data) {
$("#subContent").replaceWith($(data));
});
return false;
});
});
</script>
控制器:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Subscribe(string name)
{
ModelState.AddModelError("name", "You must enter a name");
return PartialView("SubscribeForm");
}
答
正如你所建议的最简单的方法是把整个形式进入的局部视图,并执行一个Ajax请求返回这部分的控制器操作。如果您在此部分内使用验证助手,则会显示错误消息。
另一种替代方法是发布到控制器的操作,该操作将所有错误消息放入JSON数组中并将其传递给视图。然后使用JavaScript,您可以循环显示错误消息并显示它们。
感谢您的答复。 我更喜欢选项1.我是否需要在jQuery响应中做任何事情? ('#subForm')。live('submit',function(){ $ .post($(this).attr('action'),$(this).serialize(),function(data){ //此处需要的任何内容? }); return false; }); – Chev 2010-04-07 10:15:40