Eri*_*ric 3 c# html5 razor drop-down-menu asp.net-mvc-5
我有一个带整数的域/实体对象:
public Int32 HoursToWait {get;set;}
Run Code Online (Sandbox Code Playgroud)
我在视图模型中添加了相同的东西:
public Int32 HoursToWait {get;set;}
<select id="HoursToWait" name="HoursToWait">
<option value="1">1</option>
<option value="6">6</option>
<option value="12" selected="selected">12</option>
<option value="12">24</option>
<option value="12">36</option>
<option value="12">48</option>
<option value="12">72</option>
</select>
Run Code Online (Sandbox Code Playgroud)
问题的关键是我的实体模型是一个整数.我想将其显示为下拉列表,仅允许选择某些小时.并且,一旦被选中,我想在下次显示时将其默认.
上面的代码"有效",但它的硬编码默认为12所以它是老生常的,如果用户更改HoursToWait值,重新加载时它只会返回到12.
所以主要问题是我应该使用哪种视图模型属性和剃刀元素来处理这个问题?
小智 6
您的视图模型将包含用于选择值的属性HoursToWait
和SelectList
用于选择值的属性.注意我假设您在html中有拼写错误,并且选项值应与文本匹配(目前您有5个选项value="12"
)
public class MyViewModel
{
public int HoursToWait { get; set;}
public SelectList HoursToWaitList { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
并在控制器GET方法中
List<int> hours = new List<int>{ 1, 6, 12, 24, 36, 48, 72 };
MyViewModel model = new MyViewModel()
{
HoursToWait = 12, // set the default selection (based on the existing value in the db)
HoursToWaitList = new SelectList(hours);
}
Run Code Online (Sandbox Code Playgroud)
并在视图中
@model MyViewModel
@using (Html.BeginForm())
{
@Html.DropDownListFor(m => m.HoursToWait, Model.HoursToWaitList, "-Please select-")
<input type="submit" ... />
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7085 次 |
最近记录: |