我是ASP.NET MVC的新手。我在VS2012中使用MVC4。我已经通过id获得了所有工作正常。当我在我的ajax代码中更改我的http请求从get到post时,它失败并出现500错误。
所以问题 1 - 如何调试此类问题 2 - 为什么会在这个特定情况下发生
我很确定这与我有什么关系,不了解我想要包含在路由代码中的内容
我认为代码很重要
//the controller method
[System.Web.Mvc.HttpPost]
public void PostPatientAppointment(PatientAppointment patientAppointment)
{
init();
updatePatientAppointmentList();
foreach (PatientAppointment existingPatientAppointment in patientAppointments)
{
if (patientAppointmentConflict(existingPatientAppointment, patientAppointment ))
{
throw new HttpException(409, "Conflict");
}
}
//return patientAppointment;
}
function onMouseUp(evt) {
rect = null;
mouseDown = false;
//check for conflicting appointments
//do the xhr request
//cycle through appointments looking for conflicts
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4) {
if (xmlhttp.status == 200) {
//open Dojo modal dialogue
alert("will open dialogue");
}
else if( xmlhttp.status == 409)
{
alert("There is a conflict with that patient appointment");
}
alert("hmm - status was: " + xmlhttp.status );
}
}
var patientAppointment = "{'identity':-1,'doctorId':-1,'patientId':-1,'patientName':null,'startTime':-1, 'endTime':-1,'location':null,'reason':null,'note':null,'recurrenceId':0,'appointmentTypeId':0,'patientShowedUp':false,'confirmed':false,'fullDayEvent':false}";
xmlhttp.open("POST", "/api/PatientAppointment/", true);
xmlhttp.send(patientAppointment);
}
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional}
);
}
}
答案 0 :(得分:0)
使用浏览器调试器中的网络选项卡。返回500后,检查响应正文,它包含错误。
在这个特定的例子中,我看到你有一个void方法,所以它什么都不返回。如果这应该返回ActionResult
或JsonResult
,那么你要么超过查询字符串的最大长度(这似乎不是这种情况),要么你不允许{{1您的HTTP GET
回复。