Asp.net mvc 3 如何在asp.net MVC中使用ajax
如何在asp.net MVC中从Ajax返回类对象 例如: 来自html的Ajax调用:Asp.net mvc 3 如何在asp.net MVC中使用ajax,asp.net-mvc-3,asp.net-ajax,json.net,Asp.net Mvc 3,Asp.net Ajax,Json.net,如何在asp.net MVC中从Ajax返回类对象 例如: 来自html的Ajax调用: $.ajax({ type: 'POST', url: '/Tutorial/Web/AlignmentRule/GetAlignmentDetails', data: { alignmentRuleId: alignmentRuleId }, success: functio
$.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]属性注释您的操作
有关此主题的进一步调查,请检查此您有什么问题?如果要将alignmentData作为集合返回,可以使用$.eachdata、functionindex和item在success函数中迭代该集合{alert item.ID;。但它不会返回任何内容。.即使在这段代码中也会引发错误…请检查控制台是否有错误,但我怀疑应该是url:/AlignmentRule/GetAlignmentDetails,或者更好的url:'url.ActionGetAlignmentDetails,AlignmentRule';假设您的控制器是AlignmentRuleControllerI,我使用了调试程序,并且工作正常控制器的操作方法被正确调用,但返回数据时出现一些问题。尝试在AJAX方法中添加dataType:json。控制器中alignmentData的值有效吗?仍然相同。它显示服务器错误…如果您可以发送html页和控制器的一些代码片段…???您创建了JsonViewMo吗del对象?你传递的对象是否正确?如果是服务器错误,为什么不调试并在调用中添加一个断点,以便检查发生了什么?-你不能只是复制粘贴我编写的代码,而是让你知道如何将多个对象传递到回调中…但我使用type:post,这意味着数据将被传输仅通过post方法进行编辑。。。
[HttpPost]
public virtual JsonResult GetAlignmentDetails(int alignmentRuleId)
{
var alignmentData = _allignmentRuleRepository.GetAlignmentById(alignmentRuleId);
return Json( alignmentData, JsonRequestBehavior.AllowGet);
}