Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.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
C# ASP.NET-MVC;将模型传递给$.ajax函数以执行服务器端验证_C#_Jquery_Asp.net Mvc_Asp.net Ajax_Ajaxform - Fatal编程技术网

C# ASP.NET-MVC;将模型传递给$.ajax函数以执行服务器端验证

C# ASP.NET-MVC;将模型传递给$.ajax函数以执行服务器端验证,c#,jquery,asp.net-mvc,asp.net-ajax,ajaxform,C#,Jquery,Asp.net Mvc,Asp.net Ajax,Ajaxform,我需要做服务器端验证,也就是将模型发送到部分视图。我正在使用$.ajax-->post-->json方法发送和处理数据,但无法将验证模型发送到部分视图 ajax方法 })) 剃刀形状 您将返回类型指定为dataType:“JSON”,但您的方法返回html。既然您立即重定向到另一个视图,那么这有什么意义呢。只需进行正常提交,如果模型无效,则返回视图,否则返回重定向到操作(“SystemCoreHome”、“SystemCore”)Ajax在这里是毫无意义的,您的意思是数据未发布或模型未绑定。从a

我需要做服务器端验证,也就是将模型发送到部分视图。我正在使用$.ajax-->post-->json方法发送和处理数据,但无法将验证模型发送到部分视图

ajax方法 }))

剃刀形状
您将返回类型指定为
dataType:“JSON”,
但您的方法返回
html
。既然您立即重定向到另一个视图,那么这有什么意义呢。只需进行正常提交,如果模型无效,则返回视图,否则
返回重定向到操作(“SystemCoreHome”、“SystemCore”)Ajax在这里是毫无意义的,您的意思是数据未发布或模型未绑定。从ajax调用中删除datatype和contenttype属性。@StephenMuecke是对的,这里不需要ajax。要序列化表单数据,只需执行
$('#NewFunctionNavigationForm')。serialize()我这样做是为了捕获消息,包括成功、失败或记录已存在。如果您执行正常的post并由于模型错误(或您添加自己的ModelState错误)返回视图,则将显示这些错误(并正确显示,而不只是对话框中的一些任意消息)。当ModelState无效时会发生什么?脚本失败,用户会收到一条令人困惑的“创建记录时出错!”消息。
  $('#NewFunctionNavigationForm').submit(function (e) {

   e.preventDefault();

  var DataToPost =  JSON.stringify($('#NewFunctionNavigationForm').serializeObject());

  var formURL = $(this).attr("action");

  $.ajax({
      type: "POST",
      url: formURL,
      dataType: "JSON",
      contentType: "application/json; charset=utf-8",
      data: DataToPost,
  })
.done(function (data, textStatus, jqXHR) {

    if (data.Response == "Success") {

        $(this).MyMessageDialog({
            _messageBlockID: "_StatusMessage",
            _messageContent: "Record Been Created Successfully",
            _messageBlockWidth: "300px"
        });

        $('div#_StatusMessage').on('dialogclose', function (event) {
            window.location = "/SystemCore/SystemCoreHome";
        });
    }

})
.fail(function (jqXHR, textStatus, errorThrown) {

    $(this).MyMessageDialog({
        _messageBlockID: "_StatusMessage",
        _messageContent: "Error In Creating Record! "+ textStatus + "  "+ errorThrown,
        _messageBlockWidth: "350px"
    });

    $('div#_StatusMessage').on('dialogclose', function (event) {
        window.location = "/SystemCore/SystemCoreHome";
    });
});
    @using (Html.BeginForm("CreateNewFunctionNavigation", "SystemCore", FormMethod.Post, new { id = "NewFunctionNavigationForm" }))
    {
            @Html.AntiForgeryToken()

            @Html.ValidationSummary(true)
         ... my fields here
   <div class="form-group">
                <div class="col-md-offset-2 col-md-10">
                    <input type="submit" value="Create" class="btn btn-default _formButton" />
                    <input type="button" value="Cancel" class="btn btn-default _formButton" onclick="CancelPage();" />
                </div>
   </div>
}
 [HttpGet]
    public ActionResult CreateNewFunctionNavigation()
    {

        return PartialView("CreateNewNavigation_Partial");
    }


 [HttpPost]
    public ActionResult CreateNewFunctionNavigation(CreateFunctionNavigation_SP_Map model )
    {


        if(ModelState.IsValid)
        {
            try
            {
                 _FN_Services_a2.CreateFunctionNavigation(model);

                 return Json(new { Response = "Success" });
            }
            catch (DataException ex)
            {
                ModelState.AddModelError("", "Unable To Create New Function Navigation" + ex);
            }
        }
        else
        {

        }
        return PartialView("CreateNewNavigation_Partial", model);
        //return Json(new { Url = Url.Action("CreateNewNavigation_Partial", model) });

    } //end