【发布时间】:2014-01-12 13:35:31
【问题描述】:
我想将一个参数(字符串)从我的视图传递给我的控制器。该值应该是从视图的下拉列表中选择的值。该方法在按钮单击后调用,但在Controller中,参数始终为null。
在视图中:
@using (Html.BeginForm("Send", "Overview", FormMethod.Get))
{
<p>Email: @Html.DropDownList("Emails", Model.GetEmails())
<input type="submit" value="Send" />
</p>
}
在控制器中:
public ActionResult Send(string email)
{
// email is always null!
return null;
}
在概览模型中:
private List<SelectListItem> emails;
...
public Overview()
{
emails = new List<SelectListItem>();
emails.Add(new SelectListItem() { Text = "a@b.com", Value = "a@b.com", Selected = true });
emails.Add(new SelectListItem() { Text = "b@c.com", Value = "b@c.com", Selected = false });
emails.Add(new SelectListItem() { Text = "c@d.com", Value = "c@d.com", Selected = false });
}
...
public List<SelectListItem> GetEmails()
{
return emails;
}
您能帮我完成这项工作吗?我错过了什么? (顺便说一句,请不要介意控制器现在返回 null :))。
【问题讨论】:
-
这似乎解决了它,在控制器中:string email2 = Request.Form["Emails"];
-
为什么
GetEmails()是公开的,为什么返回List<>?这两个看起来都像是反模式
标签: c# asp.net-mvc