首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用for循环填充SelectList

使用for循环填充SelectList
EN

Stack Overflow用户
提问于 2014-06-05 23:03:39
回答 1查看 1.9K关注 0票数 0

好吧,我的下坠过去是这样做的:

代码语言:javascript
复制
<select id="Level" onchange="showChoice(this.value);">
     <option id="0" value="0">Pick a Level</option>
     @for (int i =1; i <= Model.ExamplesCount; i++ )
     {
         <option id="@i" value="@i">Level @i</option>
      }
</select>

因为每个用户的ExamplesCount号都会发生变化。但是我需要使用Html.ValidationMessageFor(),这是我无法使用的。

我需要两种解决方案之一。

  1. 我能让Html.ValidationMessageFor()使用这个select标签吗?

或者如果不是,

2.我可以使用Html.DropDownListFor(),但可以使用类似的for循环来填充它吗?

例如,

代码语言:javascript
复制
@Html.DropDownListFor(
    m => m.Level, 
    new SelectList(
        new List<Object> {
             new {value = 0, text ="Pick a Level"},
             new { value = 1, text = "Level 1"},
             new { value = 2, text = "Level 2" },
             new { value = 3, text = "Level 3" },
             new { value = 4, text = "Level 4" },
             new { value = 5, text = "Level 5" } 
        },
     "value", "text", null))
 @Html.ValidationMessageFor(model => model.Level)

上面的代码可以工作,但是当我硬编码所有的SelectList值时,我想要一个for循环来完成它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-06 00:28:31

如何在您的模型中创建一个对象,该对象将包含您想要的所有项,然后将其传递给您的视图?示例:

在你的模型里。

代码语言:javascript
复制
public class Model{
     ...other properties
    public List<ListItemSource> myLevels { get; set; }
    [Required(ErrorMessage = @"*Required")]
    public string Level { get; set; }
}

在您的控制器中:

代码语言:javascript
复制
public ActionResult YourAction(Model myModel)
    {
        var myModel = new Model
        {
            myLevels =methodToGetLevels()                
        };

        return view(myModel);
    }

在你看来:

代码语言:javascript
复制
   @Html.DropDownListFor(x => x.Level,
                         new SelectList(Model.myLevels, "Value", "Text"))

    @Html.ValidationMessageFor(model => model.Level)

其中x.Level将保存选定的值,而Model.myLevels则是级别的集合。我希望这有助于解决你的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24071618

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档