2012-02-05 124 views
0

我想从我的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?

回答

0

如果你在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

1
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