如何读取ASP.NET MVC控制器发送的Ajax类响应?

时间:2014-02-18 14:37:10

标签: c# jquery asp.net ajax asp.net-mvc

您好,非常感谢您的帮助!我是网络编程的新手。

我在ASP.net MVC中对控制器进行了Ajax调用。 收到回复后,我尝试从响应中获取多个信息,并将其用于我的HTML。

$.ajax({
    url: '@Url.Action("Function", "Controller")',
    data: JSON.stringify({ Parameter: $(this).attr("id") }), 
    type: "POST",             
    contentType: "application/json",
    timeout: 10000,
    dataType: "json",
    success: function (result) {
        var result = result.d;
        $("#textbox1").attr("value", result.attr1);
        $("#textbox2").attr("value", result.attr2);
        $("#textbox3").attr("value", result.attr3);
    }

控制器:

    public class response
    {
        public string attr1;
        public string attr2;
        public string attr3;
    }

    [HttpPost]  
    public response Function(String Parameter)
    {
        response returnVal = new response();
        returnVal.attr1 = "Dummy1";
        returnVal.attr2 = "Dummy2";
        returnVal.attr3 = "Dummy3";
        return returnVal;
    }

在控制器中我收到信息,但是当响应应该被淹没时,没有任何事情发生。 我猜错了,或者我严重解析数据。

提前感谢您的回答!

2 个答案:

答案 0 :(得分:1)

尝试将控制器方法的返回类型更改为ActionResult(我不知道response是什么)。然后将您的返回行更改为:

return Json(returnVal, JsonRequestBehavior.AllowGet);

答案 1 :(得分:0)

你试过吗

public JsonResult Function(String Parameter)
    {
        response returnVal = new response();
        returnVal.attr1 = "Dummy1";
        returnVal.attr2 = "Dummy2";
        returnVal.attr3 = "Dummy3";
        return Json(returnVal);
    }