jQuery   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何将数据从MVC控制器传递到jQuery.ajax大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我们有一个ASP.NET MVC项目,我们在其中使用jQuery.ajax将一些表单数据发布到控制器.在某些情况下,由于错误sql语句,被称为my的控制器方法会遇到异常.我想在TRY CATCH中处理异常,并将有关sql语句被轰炸原因的详细信息传递给用户.因为我正在处理异常,所以jQuery.ajax帖子从服务器返回http 200,因此似乎没有发生错误.如果我使用jQuery.ajax完整属性,似乎我可以查找异常细节并向用户显示,但我不知道如何从控制器端执行此操作.最初我在控制器端尝试过类似的东西:

Public Function IndexPost(formvalues as FormCollection) as ActionResult
Try
   ...
Catch ex as Exception
   Dim sErr as String = "Exception occurred: " & ex.ToString
   ViewData("PostResult") = sErr
End Try

Return View()
End Function

然后将其@L_801_10@到我的jQuery.ajax帖子中:

complete: function (data) {
   var postDataResult = "<%=ViewData("PostResult")%>";
   if (postDataResult.length>2)
   {
      alert("Value of post result: " + postDataResult);
   }
}

由于ajax调用,ViewData(“PostResult”)当然为null.

我有什么想法可以将结果传回我的控制器的ajax调用

TKS

解决方法

在操作方法的响应周围创建一个包装类,并在其上有一个Issuccess属性.在jQuery post success方法中,检查Issuccess属性并执行适当的操作.

我们创一个通用的包装器,它可以用于所有的viewmodel / response对象.

public class ApiResponse<T>
{
    public bool Issuccess { set; get; }
    public String ErrorCode { set; get; }
    public String message { set; get; }
    public T Data { set; get; }
}

现在在你的行动方法中,

public ActionResult Save(CustomerVM model)
{ 
  var response=new ApiResponse<Customer>() { Data= new Customer() };
  try
  {
    //Everythiing went good.
    response.Issuccess=true;
  }
  catch(Exception eX)
  {
      response.message="Failed to save";
  }
  return Json(response,JsonrequestBehavIoUr.AllowGet);
}

在客户端

$.post("Save",{ "name" :"SSS"},function(r){
  if(r.Issuccess)
  {
    //Do something
  }
  else
  {
    //Error occured,alert(r.messagE);
  }
});

大佬总结

以上是大佬教程为你收集整理的如何将数据从MVC控制器传递到jQuery.ajax全部内容,希望文章能够帮你解决如何将数据从MVC控制器传递到jQuery.ajax所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。