単純なモデルをコントローラに送ってオブジェクトを更新しようとしています。何らかの理由で、これが私を回避しています。私のポストメソッドがコントローラにヒットしないのはなぜですか?
コントローラ方法:
[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をポストする方法:私は私が間違ってやっているのか分からない
$('.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(内部サーバーエラー) –
他に何も起こらない –