MVC Form Post с несколькими параметрами - PullRequest
0 голосов
/ 22 апреля 2011

Итак, у меня есть метод действия, подобный этому:

public ViewResult CareerSearch()
{
    CareerSearchModel model = GetCareerSearchModel();

    return View("Search", model);
}

В представлении я вручную создаю список флажков из одного из свойств модели.Вывод этого в конечном итоге выглядит примерно так:

<input id="location51438342" type="checkbox" checked="True" value="2" name="locations">
<label for="location51438342">Austin</label>
<input id="location14609737" type="checkbox" checked="True" value="9" name="locations">
<label for="location14609737">Dallas</label>
<input id="location25198218" type="checkbox" checked="True" value="11" name="locations">
<label for="location25198218">Houston</label>

Итак, в методе действия, который обрабатывает форму POST, я хочу получить ссылку на модель И целочисленный массив флажков.Однако, когда я перехожу к следующему методу действия, «модель» становится пустой:

[HttpPost]
public ViewResult CareerSearch(CareerSearchModel model, int[] locations)
{
    //omitted for brevity
}

Что мне здесь не хватает?Как получить ссылку на мою модель и массив значений флажков?

Ответы [ 2 ]

0 голосов
/ 22 апреля 2011

Модель не сохраняется нигде на сервере и не публикуется автоматически в данных POST (используйте Fiddler для подтверждения).Вы должны создать экземпляр модели так же, как в действии GET, и использовать другие параметры для ее изменения соответствующим образом.

См. NerdDinner о том, как отобразить данные формы POST в вашей модели.

0 голосов
/ 22 апреля 2011

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

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