ASP.NET MVC处理JsonResult在客户端

问题描述:

我想从我的CONTROLER返回JsonResultASP.NET MVC处理JsonResult在客户端

public JsonResult GetSubCategoties() { 
     return Json(new { a = true, b = "testing" }, JsonRequestBehavior.AllowGet); 
    } 

这是我在客户端:

@Ajax.ActionLink("Fragrance", "GetSubCategoties", 
          new AjaxOptions { 
           HttpMethod = "GET", 
           OnComplete = "loadsubs" 
          }) 

和功能:

function loadsubs(result) { 
//What should i do here?  
} 

如何处理客户端的JsonResult?

如果你在jQuery中使用“unobtrusive JavaScript”模式,那么结果应该是你的对象。

否则(与V3之前ASP.NET MVC),你可以得到的对象是这样的:

var json = result.get_response().get_object(); 
+0

我使用的MVC 3/4开发人员预览和那些功能不存在 – uriz 2012-02-05 12:20:00

+0

@uriz,因为我写它取决于您是否使用旧的MS AJAX(这也包括但不是要求编辑在ASP.NET 3)或更新的不显眼的JavaScript与jQuery。 – Lucero 2012-02-05 12:23:52

+0

我正在使用新的不显眼的JavaScript – uriz 2012-02-05 12:26:59

我想你可能会发现这个视频教程有助于您

Java abd Ajax with ASP.NET MVC 3

+0

观看它,但它不包括json – uriz 2012-02-05 12:25:47

function loadsubs(result) { 
    alert('a = ' + result.a + ', b = ' + result.b); 
} 
+0

我正在寻找一个像结果的基础设施解决方案.get_response()。get_object()在早期版本的MVC – uriz 2012-02-06 12:14:04

+0

@uriz中,如果你使用不显眼的jquery ajax,那么你可以直接使用'result.a'。如果使用过时的MicrosoftAjax.js脚本,则可以使用以下方法检索对象:'result.get_response()。get_object().a'和'result.get_response()。get_object()。b'。 – 2012-02-06 12:23:18

+0

我没有使用MicrosoftAjax并且result.a不正确。看这里:http://textsave.de/?p=104461结果内容 – uriz 2012-02-06 13:18:47