我想在我的表单中添加一个下拉列表,在我的下拉列表中添加2个值userid
和username
,并且我还希望在单击按钮时获取用户选择的值。我是MVC的新手,到目前为止,我没有参与下拉列表,尝试了一些示例,但似乎没有任何工作方式。
答案 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 NAME
和CONTROLLER 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)
您需要创建一个SelectListItem集合,如:
IEnumerable<SelectListItem> selectList =
from c in areaListResponse.Item
select new SelectListItem
{
Text = c.AreaName,
Value = c.Id.ToString()
};
将此selectList传递给您的视图:
return View(selectList);
在你的cshtml中:
@model IEnumerable<SelectListItem>
@Html.DropDownListFor(m => m.RequestAreaName, Model)
如果您需要complecated对象,您可能需要一个包装类,如:
public class RaiseRequestModelWrapper
{
public IEnumerable<SelectListItem> GetModel { get; set; }
public RaiseRequestModel PostModel { get; set; }
}