Я пытаюсь обновить свой вид новой информацией, поэтому, когда она отправляется на контроллер для сохранения, информация передается. Тот же метод работает нормально при создании объекта (Create-View), но выдает ошибку ajax 500: при сериализации объекта типа 'System.Data.Entity.DynamicProxies.Gutscheine_' обнаружена циклическая ссылка при редактировании существующего объекта (Edit-View).
Вот мой ajax-вызов:
function onCloseButtonClick(s) {
$.ajax({
type: "POST",
url: "@Url.Action("UpdateGutscheinEdit")",
data: { sBild: document.getElementById(s).value, bIcon: true },
success: function (response) {
document.getElementById("sBild").value = response.sBild;
document.getElementById("bIcon").value = response.bIcon;
document.getElementById("fileToUpload").value = "";
popupIconAuswaehlen.Hide();
},
error: function (jqxhr, status, exception) {
alert(jqxhr.status); //throws 500
alert('Exception', exception);
}
})
}
А вот метод:
public ActionResult UpdateGutscheinEdit(string sBild, bool bIcon)
{
Gutscheine currentGutschein = Session["CurrentGutscheinEdit"] as Gutscheine;
if (!string.IsNullOrEmpty(sBild))
{
currentGutschein.sBild = sBild;
currentGutschein.bIcon = bIcon;
}
Session["CurrentGutscheinEdit"] = currentGutschein;
return Json(currentGutschein);
}
Метод Edit- (get) являетсястандартный:
public ActionResult Edit(string id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Gutscheine gutscheine = db.Gutscheine.Find(id);
if (gutscheine == null)
{
return HttpNotFound();
}
if(Session["CurrentGutscheinEdit"] == null)
{
Session["CurrentGutscheinEdit"] = gutscheine;
}
return View(Session["CurrentGutscheinEdit"] as Gutscheine);
}
Циркулярная ссылка дает некоторую подсказку, но я довольно новичок во всем этом, так что это не сильно помогает мне в решении проблемы. Если у вас есть идеи, как это исправить, пожалуйста, дайте мне знать. Любая помощь приветствуется!