Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jquery ajax发布和服务器端验证消息的帮助_Jquery_Asp.net Mvc_Ajax - Fatal编程技术网

jquery ajax发布和服务器端验证消息的帮助

jquery ajax发布和服务器端验证消息的帮助,jquery,asp.net-mvc,ajax,Jquery,Asp.net Mvc,Ajax,有人知道jquery axax post的工作示例,其中服务器返回的验证消息突出显示了相关表单字段吗 表单应该是局部视图吗?可以使用modelstate吗 干杯正如您所建议的,最简单的方法是将整个表单放在部分视图中,并向控制器操作执行ajax请求,该操作将返回该部分视图。如果在此部分中使用验证帮助程序,将显示错误消息 另一种选择是向控制器发送操作,该操作将所有错误消息放在JSON数组中,并将其传递给视图。然后使用javascript,您可以循环浏览错误消息并显示它们 正如您所建议的,最简单的方法

有人知道jquery axax post的工作示例,其中服务器返回的验证消息突出显示了相关表单字段吗

表单应该是局部视图吗?可以使用modelstate吗


干杯

正如您所建议的,最简单的方法是将整个表单放在部分视图中,并向控制器操作执行ajax请求,该操作将返回该部分视图。如果在此部分中使用验证帮助程序,将显示错误消息


另一种选择是向控制器发送操作,该操作将所有错误消息放在JSON数组中,并将其传递给视图。然后使用javascript,您可以循环浏览错误消息并显示它们

正如您所建议的,最简单的方法是将整个表单放在部分视图中,并向控制器操作执行ajax请求,该操作将返回该部分视图。如果在此部分中使用验证帮助程序,将显示错误消息

另一种选择是向控制器发送操作,该操作将所有错误消息放在JSON数组中,并将其传递给视图。然后使用javascript,您可以循环浏览错误消息并显示它们

附例:

部分:

<%@ 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>
附例:

部分:

<%@ 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>

谢谢你的回复。我更喜欢选项1。我是否需要在jquery响应中执行任何操作$(“#子窗体”).live('submit',function(){$.post($(this.attr('action'),$(this.serialize()),function(data){//此处需要什么?});返回false;});谢谢你的回复。我更喜欢选项1。我是否需要在jquery响应中执行任何操作$(“#子窗体”).live('submit',function(){$.post($(this.attr('action'),$(this.serialize()),function(data){//此处需要什么?});返回false;});