[英]How to add values to dropdown in MVC3?
我想在表单中添加一个下拉列表,并在下拉列表中添加2个值userid
和username
,并且我还希望在单击按钮时获得用户选择的值。 我是MVC的新手,到目前为止,我还没有从事下拉列表的工作,仅尝试了一些示例,但似乎没有任何方法可以按照我想要的方式工作。
我会跳很多MVC3概念。 如果您真的不是ASP.NET MVC的新手,那么应该看看一些教程 。
此代码应帮助您:
视图
@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" />
}
行动
[HttpPost]
public ActionResult ACTIONNAME(string select)
{
//...
}
请注意:
BeginForm
帮助程序中的“ ACTION NAME
和“ CONTROLLER NAME
”。 您将不得不在您的代码上进行修改 select
名称(“选择”)和操作参数的名称(“选择”)。 这不是巧合,而是一种约定。 MVC使用name
attr绑定数据 selected
属性将使其成为默认选项 问候
看到其中一种方法是将列表作为绑定发送到模型属性中,对于值,可以将其绑定到另一个属性,例如:
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。 即使是您尝试过的“不工作”示例,对于那些试图为您提供帮助的人也很重要,因为他们正在为您花费宝贵的带宽。
您不需要为每个视图创建新的模型类,只需将其放在控制器上:
ViewBag.FieldName = new SelectList(new List<SelectListItem>() {
new SelectListItem { Value = "userid", Text = "User ID" },
new SelectListItem { Value = "username", Text = "User name" }
});
并在此视图:
@Html.DropDownList("FieldName")
您需要创建一个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)
如果需要完成的对象,则可能需要一个包装器类,例如:
public class RaiseRequestModelWrapper { public IEnumerable<SelectListItem> GetModel { get; set; } public RaiseRequestModel PostModel { get; set; } }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.