Похоже, что у меня есть небольшая ошибка в моем коде. Но я не могу найти его.Ajax Action call вызывает ошибку
Итак, я вызываю действие в своем контроллере из своей функции 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);
}
});
My Action затем возвращает частичный вид и объект списка.
public ActionResult GetVMInformation()
{
List<VmInfo> VMListArray = new List<VmInfo>();
... Code ...
return PartialView("_List", VmList);
}
Действие вызывается и работает частичный просмотр. Я протестировал его. Итак, проблема в том, что моя функция ajax не прошла успешно. Поэтому он выдает ошибку. Когда я предупреждаю об ошибке, я просто получаю сообщение «Внутренняя ошибка сервера».
Кто-нибудь видит мою ошибку?
Примечание: Мой частичный вид. Не уверен, что если его важным
<!--This partial View is just for testing the ajax function-->
@model IsolutionsAzureManager.Models.VmData
<p>@Model.Name[0]</p>
UPDATE:
Так что я изменил тип возвращаемого моей функции (которая в настоящее время имеет тип 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);
},
'GetVMInformation()', похоже, работает нормально. Я не получаю никаких объяснений – user2877820