2009-10-26 2 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

게시하는 양식에 입력 된 컨트롤의 이름을 어떻게 지정 했습니까?

은이 양식 (I 학생 예를 들어 이메일과 이름 속성이 있다고 가정)하는 int해야한다 :

"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

관련 문제