Я пытаюсь создать очень простое приложение MVC на основе учебника. Я использую маршрутизацию по умолчанию, а также простые виды и модели.
Проблема, с которой я столкнулся, связана с функцией HttpPost Edit. Я ожидаю, что объект моего типа «MyObject» будет передан в качестве параметра, но он всегда возвращается нулевым.
Вот мои функции редактирования с контроллера (функция Get работает правильно):
public ActionResult Edit(int? id)
{
if (!id.HasValue)
return RedirectToAction("Index");
var item = (from obj in mDB.MyDatabaseObjects
where obj.Id == id
select obj).First();
return View(item);
}
//
// POST: /Main/Edit/5
[HttpPost]
public ActionResult Edit(MyDatabaseObject someObject)
{
var original = (from obj in mDB.MyDatabaseObjects
where obj.Id == someObject.Id
select obj).First();
if (!ModelState.IsValid)
return View(original);
mDB.ApplyCurrentValues(original.EntityKey.EntitySetName, someObject);
mDB.SaveChanges();
return RedirectToAction("Index");
}
Обратите внимание, что мой (почти идентичный) метод Create работает должным образом:
[HttpPost]
public ActionResult Create([Bind(Exclude="Id")] MyDatabaseObject newObject)
{
if (!ModelState.IsValid)
return View();
int max = mDB.MyDatabaseObjects.Max(data => data.TaskOrder);
newObject.TaskOrder = max + 1;
mDB.AddToMyDatabaseObjects(newObject);
mDB.SaveChanges();
return RedirectToAction("Index");
}
Спасибо,
WTS