Getting JSonResult from ASP's Ajax.ActionLink
如何使用Ajax.ActionLink从控制器方法实际获取JSON? 我尝试搜索网站,但最接近的是ASP.NET MVC控制器操作返回JSON或部分html
并且"最佳答案"实际上并没有告诉您如何从ajax.actionlink中的SomeActionMethod获取JSON。
我个人不喜欢
我使用普通的
1 2 3 4 5 6 7 | @Html.ActionLink( "click me", // linkText "SomeAction", // action "SomeController", // controller null, // routeValues new { id ="mylink" } // htmlAttributes ) |
这显然会产生正常的HTML:
1 | click me |
我在不同的javascript文件中不引人注意地使用AJAXify:
1 2 3 4 5 6 7 8 9 10 | $(function() { $('#mylink').click(function() { $.post(this.href, function(json) { // TODO: Do something with the JSON object // returned the your controller action alert(json.someProperty); }); return false; }); }); |
假设以下控制器操作:
1 2 3 4 5 | [HttpPost] public ActionResult SomeAction() { return Json(new { someProperty ="Hello World" }); } |
更新:
根据评论部分的要求,这里是如何使用
1 2 3 4 5 6 7 8 9 | @Ajax.ActionLink( "click me", "SomeAction", "SomeController", new AjaxOptions { HttpMethod ="POST", OnSuccess ="success" } ) |
并在成功回调中:
1 2 3 4 | function success(data) { var json = $.parseJSON(data.responseText); alert(json.someProperty); } |