如何在MVC3中的下拉列表中添加值?

时间:2012-07-30 05:28:42

标签: c# asp.net-mvc-3

我想在我的表单中添加一个下拉列表,在我的下拉列表中添加2个值useridusername,并且我还希望在单击按钮时获取用户选择的值。我是MVC的新手,到目前为止,我没有参与下拉列表,尝试了一些示例,但似乎没有任何工作方式。

4 个答案:

答案 0 :(得分:0)

我会跳过很多MVC3概念。如果您真的是ASP.NET MVC的新手,那么您应该看一些tutorials

此代码可以帮助您:

查看

    @using (Html.BeginForm("ACTION NAME", "CONTROLLER NAME"))
    {
        <select name="select">
            <option value="username" selected>User name</option>
            <option value="userid">User id</option>
        </select>
        <input type="submit" />
    }

<强> ACTION

[HttpPost]
public ActionResult ACTIONNAME(string select)
{
    //...
}

请注意:

  • ACTION NAMECONTROLLER NAME位于BeginForm帮助者。您必须在您的代码
  • 修改此内容
  • select名称(“select”)和操作中参数的名称(“select”)。这不是巧合,这是一个惯例。 MVC使用name attr来绑定数据
  • 该选项的selected属性将使其成为默认选项

此致

答案 1 :(得分:0)

请参阅以下一种方法:将模型属性中的列表作为绑定发送,并将值绑定到另一个属性,例如:

public class YourModel 
{    
public List<UserList> OptionList { get; set; }
public String YourValue{get;set;}
}
public class UserList
{
   public String UserName{get;set;}
   public String UserId{get;set;}
}

@Html.DropDownListFor(model => model.YourValue, Model.OptionList, "")

在帮助器中有覆盖选项,用于指定值和文本。

记住:
这是StackOverflow。 即使您尝试过的非实用示例对于那些试图帮助您的人来说也很重要,因为他们正在为您花费宝贵的带宽。

答案 2 :(得分:0)

您不需要为每个视图创建一个新的模型类,只需将其放在控制器上:

ViewBag.FieldName = new SelectList(new List<SelectListItem>() {
    new SelectListItem { Value = "userid", Text = "User ID" },
    new SelectListItem { Value = "username", Text = "User name" }
});

这就是观点:

@Html.DropDownList("FieldName")

答案 3 :(得分:0)

  1. 您需要创建一个SelectListItem集合,如:

    IEnumerable<SelectListItem> selectList =
    from c in areaListResponse.Item
    select new SelectListItem
    {
      Text = c.AreaName,
      Value = c.Id.ToString()
    };
    
  2. 将此selectList传递给您的视图:

    return View(selectList);
    
  3. 在你的cshtml中:

    @model IEnumerable<SelectListItem>
    
    @Html.DropDownListFor(m => m.RequestAreaName, Model)
    
  4. 如果您需要complecated对象,您可能需要一个包装类,如:

     public class RaiseRequestModelWrapper
    {
    public IEnumerable<SelectListItem> GetModel { get; set; }
    public RaiseRequestModel PostModel { get; set; }
    }