Как получить контроль над привязкой модели?

Я недавно начал использовать MVC и немного разочаровываюсь. Вместо того, чтобы помочь мне, структура мешает мне.

Я пытаюсь написать такое действие контроллера (псевдокод)

ActionResult Save(long id, string whichForm)
{
    if (whichForm == "A")
    {
        var vm = CreateModel(Request.Form);
        if (!TryValidate(vm))
            return View(vm);
        else
            return RedirectToRoute("Success");
    }
    else ....
}

В принципе, я хотел бы иметь контроль над тем, когда моя модель представления построена и когда она проверяется. Возможно ли это? Как реализовать метод CreateModel? Возможно, я захочу создать несколько различных моделей представлений в рамках этого действия контроллера.

*Rant: Я не очень понимаю, почему привязка и проверка модели представления смешиваются вместе в DefaultModelBinder. Похоже на запах кода. Особенно, когда трудно переопределить это поведение.

10
задан Kugel 31 May 2012 в 00:20
поделиться