action 向ajax传递错误讯息,关于jquery:Ajax Action调用抛出一个错误

我的代码好像有点错误。但我找不到。

所以,我从Ajax函数调用控制器中的一个动作。

var serviceURL = '/Vm/GetVMInformation';

$.ajax({

type:"GET",

url: serviceURL,

contentType:"application/json; charset=utf-8",

dataType:"json",

success: function (result) {

alert("This Works fine");

$("#testDiv").html(result); // Display the partial View in this div

},

error: function (XMLHttpRequest, textStatus, errorThrown) {

alert(errorThrown);

}

});

然后,我的操作返回一个局部视图和一个列表对象。

public ActionResult GetVMInformation()

{

List VMListArray = new List();

... Code ...

return PartialView("_List", VmList);

}

该操作将被调用,部分视图将工作。我测试了它。所以问题是,我的Ajax函数不成功。所以它抛出了一个错误。当我警告错误时,我只得到"内部服务器错误"。

有人看到我的错误吗?

注:我的部分观点。不确定它是否重要

@model IsolutionsAzureManager.Models.VmData

@Model.Name[0]

更新:

所以我把函数的返回类型(现在是jsonresult类型)改为json

JavaScriptSerializer jss = new JavaScriptSerializer();

string output = jss.Serialize(VmList);

Response.Write(output);

Response.Flush();

Response.End();

return Json("_List", output);

好消息是:Ajax调用现在成功了。坏消息是:我仍然无法显示我的部分视图。返回值(结果)只是[对象,对象]

success: function (result) {

$("#testDiv").html(result);

},

如果您得到一个500错误在您的应用程序中是错误的。

如果您得到一个JS错误,可能是因为您的JS期望返回JSON,但是由于您返回一个部分视图,返回的内容是HTML。控制器操作应将列表转换为JSON对象,操作返回类型应为JSONResult。或者更改JS中的预期结果类型。

*更新

您看到"对象"是因为您只是将JSONJECT抛出到HTML中。要正确显示它,需要使用对象。因为它是一个序列化的列表,所以需要对它进行迭代,对每个条目做一些事情。像这样的东西

for (var i = 0; i < result.length; i++) {

alert(result[i].name);

}

其中".name"是您的VmInfo类中的某个字段。

所以我更新了我的问题。显示局部视图时仍有问题

我更新了我的答案以反映你的进步。

内部服务器错误意味着您的服务器抛出异常并响应500 HTTP状态。您需要调试GetVMInformation操作,请参阅原因。

GetVMInformation()似乎工作得很好。我没有任何期望

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值