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