ASP.NET MVC AJAX调用返回值从控制器查看

ASP.NET MVC AJAX调用返回值从控制器查看

问题描述:

在AJAX调用期间是否可以将ViewData,TempData或会话返回到视图?这些变量是否包含在循环中?请评论ASP.NET MVC AJAX调用返回值从控制器查看

function submitForm(frm) { 
     var tdata = $(frm).serialize(); 

     $.ajax({ 
      url: "/Organization/EditOrganizationMeta", 
      data: tdata, 
      success: function (result) {     
       if (result["ErrorMessage"] == "No Error") { 
        $("#" + result["DivName"] + "1").hide(); 
        $("#" + result["DivName"]).show(); 
        $("#" + result["DivName"]).empty(); 
        $("#" + result["name"]).attr("value", result["SavedValue"]); 
        $("#" + result["DivName"]).append("<b>" + result["SavedValue"] + "</b>"); 
        $("#" + result["DivName"] + "2").empty(); 
        $("#" + result["DivName"] + "2").append("<b>Record is successfully saved</b>"); 

       } 
       else if (result["ErrorMessage"] != "") { 
        $("#" + result["DivName"] + "1").show(); 
        $("#" + result["DivName"]).hide(); 
        $("#" + result["DivName"]).empty(); 
        $("#" + result["name"]).attr("value", result["PreviousValues"]); 
        $("#" + result["DivName"] + "2").empty(); 
        $("#" + result["DivName"]).append("<b>" + result["PreviousValues"] + "</b>"); 
        $("#" + result["DivName"] + "2").append("<b>" + result["ErrorMessage"] + "</b>"); 
       } 
      }, 
      type: "POST", 
      datatype: "json" 
     }); 

     return false; 
    } 
+0

您使用的是内置的MVC的Ajax方法和脚本?如果是这样,你是否问在执行Ajax调用后如何更改视图中的数据? – 2010-09-04 05:38:32

+0

没有简单的我在控制器中设置一个变量,我想在视图中检索它 – maztt 2010-09-04 05:42:22

+0

为什么你需要直接访问viewdata/tempdata?只需将它作为您的控制器方法中的JSON/XML响应的一部分返回即可。即返回JsonResult(someViewModelWhichAlsoIncludesTempData) – RPM1984 2010-09-04 05:45:19

Bsaed您刚刚发布的JavaScript代码,我认为最好的办法是返回你想要的success功能使用为JSON参数。

要从ASP.NET MVC控制器的ActionResult返回一个对象作为JSON,你必须做到以下几点:

return Json(myObject); //where myObject is an object that contains all the information that you want to return.