Параметры действия контроллера автоматически отображаются для просмотра входных тегов? - PullRequest
3 голосов
/ 18 октября 2010

У меня есть контроллер с действием, у которого есть параметр (JobID).Я был удивлен, увидев, что оно автоматически отображается на скрытое поле с тем же именем в представлении, которое вернул контроллер.Я использую строго типизированные модели представления и предположил, что мне нужно передать все свойства модели как часть модели представления.Похоже, что это не так.

Я знаю, что поля представления отображаются обратно на параметры действия на вызываемых контроллерах, но я не осознавал, что это работает в обоих направлениях.Я правильно понимаю?Есть какие-нибудь ошибки с этим?

1 Ответ

2 голосов
/ 18 октября 2010

Если вы используете помощники HTML для генерации этих входных тегов, то при рендеринге они сначала смотрят параметры запроса (POST и GET), а затем модель и ViewData. Условием для этого является наличие параметра действия с тем же именем.

Суть в том, что вы не можете изменить значение внутри действия вашего контроллера, и оно всегда будет использовать значение, переданное в качестве параметра. Например, рассмотрим следующее действие POST:

[HttpPost]
public ActionResult Index(Job job)
{
    job.JobID = 10;
    return View();
}

который размещен с jobID = 5. Даже если вы установите значение 10, HTML-помощник будет использовать 5 при рендеринге.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...