При реализации действия Edit я добавляю два метода для Get и Post: Edit (идентификатор строки)
В идеале они должны иметь одинаковую подпись. Но, конечно, это не компилируется. Поэтому я добавляю фиктивный параметр в метод HttpPost ( form в моем случае):
[HttpGet]
public ActionResult Edit(string id)
{
var user = Entities.Users.SingleOrDefault(s => s.UserID == id);
return View(user);
}
[HttpPost]
public ActionResult Edit(string id, FormCollection form)
{
var user = Entities.Users.SingleOrDefault(s => s.UserID == id);
if (TryUpdateModel<User>(user, new[] { "Email", "FullName" }))
{
Entities.SaveChanges();
RedirectToAction("Index");
}
return View(user);
}
Есть ли лучший / более чистый способ реализации действия редактирования?