2009-10-26 4 views
0

У моей страницы просмотра есть Модель, представленная List of Students.Как передать список объектов контроллеру [Post], в ASP.Net MVC?

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

[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

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

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

"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) 
} 
+0

Это работает, спасибо! Я не принял ответ раньше, потому что до сих пор не пробовал. – andreiursan

Смежные вопросы