我正在创建一个引用数据库的ASP.NET MVC 3应用程序,在Edit.cshtml文件中我希望将其中一个项目(Score)的编辑功能限制为0,1,2,3 4。我已尝试过这篇文章Converting HTML.EditorFor into a drop down (html.dropdownfor?)中的选项,但似乎无法使其正常运行。
<div class="editor-label">
@Html.LabelFor(model => model.Score)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Score, "YesNoDropDown")
@Html.ValidationMessageFor(model => model.Score)
</div>
非常感谢。
Chri3
答案 0 :(得分:1)
如果你不认为需要经常更换,我只会使用如下的静态选择:
<div class="editor-label">
@Html.LabelFor(model => model.Score)
</div>
<div class="editor-field">
<select id="score" name="score">
@for(int i=0; i<5; i++){
<option value="@i" @(Model.Score==i ? " selected": "")>@i</option>
}
</select>
</div>
答案 1 :(得分:1)
要使用Html.DropDownListFor,您需要传入类型IEnumerable<SelectListItem>
的参数。
我在这里为你创建了一些模型
模型中的
public class SampleModel
{
public string SeletectRateItem { get; set; }
public IList<SelectListItem> RateItem
{
get
{
var item = new List<SelectListItem>();
item.Add(new SelectListItem(){Selected = false, Text = "1", Value = "1"});
item.Add(new SelectListItem(){Selected = false, Text = "2", Value = "2"});
item.Add(new SelectListItem(){Selected = false, Text = "3", Value = "3"});
item.Add(new SelectListItem(){Selected = false, Text = "4", Value = "4"});
item.Add(new SelectListItem(){Selected = false, Text = "5", Value = "5"});
return item;
}
}
}
和cshtml
@Html.DropDownListFor(m => m.SeletectRateItem, Model.RateItem)