Как передать список объектов параметру контроллера [Post] в ASP.Net MVC? - PullRequest
0 голосов
/ 26 октября 2009

На моей странице просмотра есть Модель, которая представлена ​​списком студентов.

Я хочу передать эту модель параметру контроллера:

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult SendMail(List<Student> students)
{
    .............
    return View("Success",students)
}

Я пробовал это с Ajax.ActionLink:

<%= Ajax.ActionLink("Send Mail to list AT SCS", "SendMail", students = Model,
                             new AjaxOptions()
                             {
                                 Confirm = "Are you sure you want to send mails?",
                                 HttpMethod = "POST"
                             }
                     )%>

Но когда я использую отладчик в VS, я вижу, что список пуст. Не возможно отправить список контроллеру из представления? Если нет, то как мне решить эту проблему?

1 Ответ

1 голос
/ 26 октября 2009

Как вы назвали элементы управления вводом внутри формы, которую вы публикуете?

Это должно быть в этой форме (я предполагаю, что у студента есть свойство Email и Имя, например):

"PREFIX [" + итератор + "]. PropertyName"

 <ul>
    <% int i = 0; foreach (Student s in (IEnumerable)this.Model)
       {%>
    <li>
        <%=Html.TextBox("student[" + i + "].Email")%>
        <%=Html.TextBox("student[" + i + "].Name")%>
    </li>
    <%i++;
       } %>
</ul>

если вы назвали его по-другому, тогда для параметра «Префикс» можно установить значение «Действие»:

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult SendMail(Bind(Prefix="thePrefix")]List<Student> students)
{
    .............
    return View("Success",students)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...