Ler*_*ica 1 c# razor asp.net-mvc-3
我正在形成一个局部视图.在其中我想使用3个值显示下拉列表,例如:
<td>
@Html.DropDownList("Yes", "No", "Not Applicable")
</td>
Run Code Online (Sandbox Code Playgroud)
显然我不能硬编码这样的值,但这是个主意.我将仅在此视图中使用此下拉列表,因此我想在可能的情况下保留逻辑,唯一的是我想跟踪所选值,因此我想添加一些隐藏值Id,例如.在我看来有没有办法做到这一点?我想过传递一个ViewBag参数或类似的东西,但我真的认为必须有一个更优雅的解决方案.
ViewData["myList"] =
new SelectList(new[] { "10", "15", "25", "50", "100", "1000" }
.Select(x => new {value = x, text = x}),
"value", "text", "15");
Run Code Online (Sandbox Code Playgroud)
然后在你看来:
@Html.DropDownList("myList")
Run Code Online (Sandbox Code Playgroud)
或者您可以使用linq生成选择列表
IList<Customer> customers = repository.GetAll<Customer>();
IEnumerable<SelectListItem> selectList =
from c in customers
select new SelectListItem
{
Selected = (c.CustomerID == invoice.CustomerID),
Text = c.Name,
Value = c.CustomerID.ToString()
};
Run Code Online (Sandbox Code Playgroud)
在你的情况下:
List<SelectListItem> ls = new List<SelectListItem>();
ls.Add(new SelectListItem() { Text = "Yes", Value = "true", Selected = true });
ls.Add(new SelectListItem() { Text = "No", Value = "false", Selected = false });
ls.Add(new SelectListItem() { Text = "Not Applicable", Value = "NULL", Selected = false });
ViewData["myList"] = ls;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4768 次 |
| 最近记录: |