如何在asp.net MVC中从Ajax返回类对象。。。。???
示例:
来自html:的Ajax调用
$.ajax({
type: 'POST',
url: '/Tutorial/Web/AlignmentRule/GetAlignmentDetails',
data: { alignmentRuleId: alignmentRuleId },
success:
function (data) {
alert(data.Id);
alert(data.alignmentData.Id);
$("#ruleName").val(data.alignmentData.Name);
$("#level").val(data.alignmentData.Id);
},
error:
function () {
alert("Server Error!!!!");
},
dataType: 'JSON',
async: false
});
柔术中的动作方法是:
public virtual JsonResult GetAlignmentDetails(int alignmentRuleId)
{
var alignmentData = _allignmentRuleRepository.GetAlignmentById(alignmentRuleId);
return Json( alignmentData );
}
我还想返回alignmentRule类对象的列表。。。。
您可以根据需要组合返回对象,例如,创建一个ViewModel
作为装饰器来保存您想要传递的所有内容,例如:
var json = new JsonViewModel() {
alignmentData = alignmentData,
rules = yourRules
};
return Json(json);
抛出此错误是因为默认情况下MVC框架不允许您使用JSON响应HTTP GET请求(出于安全原因)。为了使其工作,当您在操作中重试Json时,您需要指定JsonRequestBehavior.AllowGet
[HttpPost]
public virtual JsonResult GetAlignmentDetails(int alignmentRuleId)
{
var alignmentData = _allignmentRuleRepository.GetAlignmentById(alignmentRuleId);
return Json( alignmentData, JsonRequestBehavior.AllowGet);
}
编辑
用[HttpPost]属性注释您的操作。
有关此主题的进一步调查,请查看本文