如何动态地从ASP.NET MVC控制器获取数据到jQuery?
我有一个jQuery函数,在单击div元素时,获取该元素预定义的ID值。 我想要做的是加载父元素子元素,所以我打算使用jQuery动态构建一些html。 我不知道该怎么做,是调用一个控制器(ASP.NET MVC 3)并让控制器将一个集合返回给客户端。
我知道如何将jQuery对象从jQuery发送到控制器,但不是相反。
提前致谢!
以下是如何将数据从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); }
进一步阅读
样品:
使用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)}; }
您可以使用jquery ajax
函数和MVC Razor Url
属性:
$.ajax({ url: '@Url.Action("Home")', type: "GET", success: function (data) { $("my-div").append(data); } });
success属性的值是一个带有一个参数的函数: data 。 这是从控制器返回的结果。