在 asp.net mvc3 中使用 JsonResult 操作的用例是什么?
本文关键字:操作 是什么 JsonResult net mvc3 asp | 更新日期: 2023-09-27 18:34:28
在 ASP.NET MVC 3应用程序中使用JsonResult操作是典型的?
JsonResult 通常从哪里调用;从另一个操作或 html 中呈现的 actionlink?
你能给我一些你想要 json 而不是典型视图的例子吗?
例如,您想使用基于另一个字段选择的值列表填充 jQuery 自动完成,因此您无法确定页面加载时的数据。我通常会在$.ajax
调用中调用操作方法,然后返回一个项目数组以填充自动完成。
例如,这是我的jQuery,一个用于调用的函数,另一个用于调用以使用接收的数据填充自动完成:
$(function() {
$.ajax({
url: '@Url.Action("GetHomes", "Account")',
type: "POST",
datatype: "json",
success: function (data) {
if (data.Success || data.Success == null) {
WireUpHomesData(data);
} else {
ShowErrorDialog();
}
}
});
ShowDialog();
});
function WireUpHomesData(data) {
var homes = new Array();
for (var i = 0; i < data.length; i++) {
homes[i] = { label: data[i].HomeName, text: data[i].HomeId, icon: data[i].HomeIcon, desc:data[i].HomeAddress };
}
$("#home").autocomplete({
source: homes,
select: function (event, item) {
homeUrl = '@Url.Action("Site", "Sites")/' + item.item.text;
}
}).data("autocomplete")._renderItem = function (ul, item) {
return $("<li></li>")
.data("item.autocomplete", item)
.append("<a><span class='" + item.icon + "'/><span class='fs-ui-autocomplete-home'>" + item.value + "</span><br>" + item.desc+ "</a>")
.appendTo(ul);
};
$(".ui-autocomplete").addClass("fs-ui-autocomplete");
}
这是我的控制器:
public JsonResult GetHomes()
{
return Json(RequiresAclAttribute.HomesForUser());
}
下面是调用的方法的方法签名:
public IEnumerable<HomeInfo> HomesForUser()
为了清楚起见,这里是HomeInfo
类:
public class HomeInfo
{
public string HomeId { get; set; }
public string HomeName { get; set; }
public string DisplayName { get; set; }
public string HomeAddress { get; set; }
public string HomeIcon { get; set; }
}
JsonResult
是从ActionResult
类派生的子类。当您想要返回 Json 对象时,可以使用它。
public JsonResult GetItems()
{
var jsonResult=new { Id = "23", Name = "Scott"};
return Json(jsonResult,JsonBehaviour.AllowGet);
}
这将返回与
public ActionResult GetItems()
{
var jsonResult=new { Id = "23", Name = "Scott"};
return Json(jsonResult,JsonBehaviour.AllowGet);
}
可能的用途是以异步方式获取一些数据块。例如:假设您有一个下拉列表,其中显示州,当用户选择一个州时,您希望将属于该州的城市列表显示在页面中,而无需页面引用。你可以调用 using jQuery ajax/getJson 方法(jQuery get 的简写,json 作为数据类型(方法从返回Json
数据的ActionMethod
获取此数据。
调用返回 Json 数据的 Action 方法的小示例
$(function(){
$.getJSON('YourController/GetItems', function(data) {
alert(data.Id);
alert(data.Name );
});
});
对于 JsonResult 类,如果没有明确指定任何内容,响应内容类型将为"application/json
"。在内部 ExecuteResult
方法在返回数据时使用 JavaScriptSerializer
来序列化内容。
当从javascript进行ajax调用时,JsonResult非常有用,例如使用来自jQuery的getJSON: http://api.jquery.com/jQuery.getJSON/
JsonResult 的好处是它毫不费力地返回 JSON 格式的结果。
客户端脚本的 Ajax 请求,不涉及完整页面加载。基本上。
每当有客户端处理并且客户端需要数据时使用 jsonresult 时,就像在自动填充或远程验证中一样