1

我正在创建一个引用数据库的 ASP.NET MVC 3 应用程序,并且在 Edit.cshtml 文件中我希望将其中一项(分数)的编辑功能限制为 0、1、2、3、4。我已经尝试了这篇文章将 HTML.EditorFor 转换为下拉列表 (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>

非常感谢。

克里斯3

4

2 回答 2

2

如果您不认为它需要经常更改,我只需使用如下静态选择:

<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>
于 2013-05-15T20:52:40.067 回答
1

要使用 Html.DropDownListFor,您需要传入 type 的参数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)
于 2013-05-15T21:39:09.053 回答