我只是想發送一個簡單的模型回我的控制器來更新一個對象。出於某種原因,這是在逃避我。爲什麼我的發佈方法不能擊中控制器?
控制器的方法:
[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(內部服務器錯誤) –
沒有其他任何反應 –