Явная привязка модели

Данное руководство устарело. Актуальное руководство: Руководство по ASP.NET Core

Последнее обновление: 31.10.2015

При использовании параметра в методе действия привязка модели работает неявно. Но мы можем вызвать на контроллере и явную привязку модели с помощью методов UpdateModel и TryUpdateModel. Если модель не прошла валидацию, то метод UpdateModel выбрасывает исключение. Ниже показан пример использования метода UpdateModel в действии Edit вместо применения параметра:

[HttpPost]
public ActionResult Edit()
{
    var book = new Book();
    try
    {
        UpdateModel(book);
        db.Entry(book).State = EntityState.Modified;
        db.SaveChanges();
        return RedirectToAction("Index");
    }
    catch
    {
        ViewBag.Message="Во время редактирования возникли ошибки";
		return RedirectToAction("Index");
    }
}

TryUpdateModel также вызывает привязку модели, но не выбрасывает исключение. Этот метод возвращает значение типа bool - если это значение равно true, модель прошла привязку, если false, то валидация прошла неудачно.

[HttpPost]
public ActionResult Edit()
{
    var book = new Book();
    if (TryUpdateModel(book))
    {
        db.Entry(book).State = EntityState.Modified;
        db.SaveChanges();
        return RedirectToAction("Index");
    }
    else
    {
		ViewBag.Message="Во время редактирования возникли ошибки";
        return RedirectToAction("Index");
    }
}
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850