我的视图页面有一个模型,由学生列表表示。
我想将该Model传递给控制器参数:
[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中使用调试器时,我发现List是空的。 是否无法从视图向控制器发送列表?如果没有,我该如何解决?
答案 0 :(得分:1)
您如何在发布的表单中命名输入控件?
它应该是这种形式(我假设学生有电子邮件和姓名属性):
<强> “PREFIX [” +迭代+ “]。属性名”强>
<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:
上设置Prefix[AcceptVerbs(HttpVerbs.Post)]
public ActionResult SendMail(Bind(Prefix="thePrefix")]List<Student> students)
{
.............
return View("Success",students)
}