我有一个jQuery函数,在点击div元素时,获取该元素的预定义ID值。我想要做的是加载父元素子元素,所以我打算使用jQuery动态构建一些html。我不知道该怎么做,是调用一个控制器(ASP.NET MVC 3)并让控制器将一个集合返回给客户端。
我知道如何从jQuery向控制器发送JSON对象,但不是相反。
提前致谢!
答案 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);
}
答案 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 。这是您的控制器返回的结果。