在edit.cshtml中下拉框

时间:2013-05-15 14:54:14

标签: asp.net-mvc-3 razor

我正在创建一个引用数据库的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

2 个答案:

答案 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)