如何动态地从ASP.NET MVC控制器获取数据到jQuery?

时间:2012-11-02 15:19:02

标签: jquery json asp.net-mvc-3

我有一个jQuery函数,在点击div元素时,获取该元素的预定义ID值。我想要做的是加载父元素子元素,所以我打算使用jQuery动态构建一些html。我不知道该怎么做,是调用一个控制器(ASP.NET MVC 3)并让控制器将一个集合返回给客户端。

我知道如何从jQuery向控制器发送JSON对象,但不是相反。

提前致谢!

3 个答案:

答案 0 :(得分:18)

以下是将数据从Controller发送到json的代码:

 $.ajax({
    url: '@Url.Action("GetData", "Home")',
    type: "GET",
    success: function (result) {
        $("#somediv").append(result.FirstName);
        $("#somediv").append(result.LastName);
        $("#somediv").append(result.Age);
    }
});

考虑下面的类......

 public class User
 {
     public string FirstName { get; set; }
     public string LastName { get; set; }
 }

你的行动应该是这样的。

public JsonResult GetData()  
{
   User user = new User();
   user.FirstName = "Yasser";
   user.LastName = "Shaikh";
   user.Age = 100;

   return Json(user, JsonRequestBehavior.AllowGet);
}

Further Reading

答案 1 :(得分:3)

样品:

<强>使用Javascript:

$.ajax({
        type: 'POST',
        url: '@(Url.Action("SomeAction", "SomeController"))',
        data: someInputData,
        error: OnErrorFunction,
        success: function (data, textStatus, XMLHttpRequest) {
            alert(JSON.stringify(data));
        },
        dataType: "json"
    });

<强>控制器:

public ActionResult SomeAction(InputDataType someInputData)
    {
        if (someInputData== null)
            return null;
        return new JsonResult {Data = SomeOutputData(someInputData)};
    }

答案 2 :(得分:1)

您可以使用jquery ajax函数和MVC Razor Url属性:

$.ajax({
    url: '@Url.Action("Home")',
    type: "GET",
    success: function (data) {
        $("my-div").append(data);
    }
});

success属性的值是一个带有一个参数的函数: data 。这是您的控制器返回的结果。