我只是想发送一个简单的模型回我的控制器来更新一个对象。出于某种原因,这是在逃避我。为什么我的发布方法不能击中控制器?
控制器的方法:
[Authorize(Roles = Enums.Roles.SiteAdmin)]
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit([Bind(Include = "BuildingId,Name")] Building building)
{
if (ModelState.IsValid)
{
service.Update(building);
return Json(new { Status = "Success!" });
}
return Json(new { Status = "error." });
}
EF型号:
public class Building
{
[Key()]
public int BuildingId { get; set; }
[Required()]
[MaxLength(200)]
public string Name { get; set; }
public virtual ICollection<Room> Rooms { get; set; }
}
的Javascript POST方法:
$('.saveOnBlur').on('blur', function (e) {
var newBuildingName = $(this).prop("innerText");
var editBuildingId = $(this).siblings('.hiddenId').children().first().val();
var modifiedBuilding = { BuildingId: Number(editBuildingId), Name: newBuildingName };
$.ajax({
url: "/Equipment/Buildings/Edit",
type: 'POST',
contentType: 'application/json',
data: { building: JSON.stringify(modifiedBuilding) }
});
})
我不知道我做错了。我能够使用非常类似的方法创建对象,但是这个代码甚至没有命中控制器方法,我立即得到一个内部错误500(不是404)。有任何想法吗?
您能提供您收到的错误消息吗? – Dabbas
@Dabbas从F12工具的控制台:jquery-2.1.3.min.js:4 POST http:// localhost:55698/Equipment/Buildings/Edit 500(内部服务器错误) –
没有其他任何反应 –