2009-10-26 110 views
0

我的查看頁面有一個由學生列表代表的模型。如何在ASP.Net MVC中將對象列表傳遞給[Post]控制器參數?

我想傳遞模型控制器參數:

[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

您如何在發佈的表單內命名輸入控件?

應該是int這種形式(我認爲學生有例如電子郵件和Name屬性):

「前綴[」 +迭代器+ 「]屬性名。」

<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> 

如果您對其命名方式不同,則前綴可設置爲Action:

[AcceptVerbs(HttpVerbs.Post)] 
public ActionResult SendMail(Bind(Prefix="thePrefix")]List<Student> students) 
{ 
    ............. 
    return View("Success",students) 
} 
+0

它的工作原理,謝謝! 我之前沒有接受答案,因爲直到現在我還沒有嘗試。 – andreiursan 2009-11-11 08:49:15

相關問題