2012-02-25 67 views
0

这是索引操作,它将填充可能的性别到稍后的下拉选择的ViewBag中。它也将在注入的参数下拉菜单不会发送任何东西

public ActionResult Index(string gender) 
     { 
      ViewBag.Genders = _db.Contacts.Select((x => x.Gender)).Distinct(); 

      var model = _db.Contacts.Where(x => x.Gender == gender || gender == null); 
      return View(model); 
     } 

过滤如果我只是路过的女性使用ActionLink的,它过滤罚款:

@Html.ActionLink("Show Ladies", "Index", "Contact", new { Gender = "Female"}, null) 

然而,在一个下拉列表,它似乎并没有被根本就没有反应。我可以看到选择,但按下按钮,不做任何事情:

@using (Html.BeginForm()) 
{ 
    @Html.DropDownList("Gender", new SelectList(ViewBag.Genders)) 
    <input type="button" value="Filter"/> 
} 

我错过了什么?

回答

0

对于过滤按钮使用<input type="submit" value="Filter"/>使用button类型实际上不会提交表单。

+0

哦该死。我怎么错过了。很多感谢:) – Houman 2012-02-25 09:56:48

+0

还有一件事,我如何使下拉为GET而不是Post,以便在地址栏中看到@ gender = Female? – Houman 2012-02-25 10:05:57

+1

您可以使用'Html.BeginForm'的重载将方法设置为GET。 'Html.BeginForm(“ActionName”,“ControllerName”,FormMethod.Get)' – pjumble 2012-02-25 10:08:57