加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc-3 – 从ASP的Ajax.ActionLink获取JSonResult

发布时间:2020-12-15 19:03:13 所属栏目:asp.Net 来源:网络整理
导读:如何使用Ajax.ActionLink从控制器方法实际获取 JSON?我试着搜索网站,但最接近的是 ASP.NET MVC controller actions that return JSON or partial html 并且“最佳答案”实际上并没有告诉您如何从ajax.actionlink中的SomeActionMethod获取JSON. 解决方法 我
如何使用Ajax.ActionLink从控制器方法实际获取 JSON?我试着搜索网站,但最接近的是 ASP.NET MVC controller actions that return JSON or partial html

并且“最佳答案”实际上并没有告诉您如何从ajax.actionlink中的SomeActionMethod获取JSON.

解决方法

我个人不喜欢Ajax.*助手.在ASP.NET MVC中< 3他们用javascript污染我的HTML,在ASP.NET MVC 3中,他们使用完全冗余的HTML 5 data- *属性污染我的HTML(例如锚点的url).此外,它们不会自动解析成功回调中的JSON对象,这就是您的问题所在. 我使用普通的Html.*助手,像这样:
@Html.ActionLink(
    "click me",// linkText
    "SomeAction",// action
    "SomeController",// controller
    null,// routeValues
    new { id = "mylink" } // htmlAttributes
)

这显然会产生正常的HTML:

<a href="/SomeController/SomeAction" id="mylink">click me</a>

我在不同的javascript文件中不引人注意地使用AJAXify:

$(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;
    });
});

假设以下控制器操作:

[HttpPost]
public ActionResult SomeAction()
{
    return Json(new { someProperty = "Hello World" });
}

更新:

根据评论部分的要求,这里是如何使用Ajax.*助手(我再次重复一遍,这只是说明如何实现这一点,绝对不是我推荐的东西,请参阅我推荐的解决方案的初步答案):

@Ajax.ActionLink(
    "click me","SomeAction","SomeController",new AjaxOptions { 
        HttpMethod = "POST",OnSuccess = "success" 
    }
)

并在成功回调中:

function success(data) {
    var json = $.parseJSON(data.responseText);
    alert(json.someProperty);
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读