首页新闻找找看学习计划

@Html.DropDownListFor默认选中项

0
悬赏园豆:50 [已解决问题] 解决于 2017-04-01 17:36

项目使用mvc4,给dropDownList指定默认值未选中

页面代码是:

1、未有默认选中值
Html.DropDownListFor(m => m.Type, ViewData["Type"] as IEnumerable<SelectListItem>, new { @class = "form-control", disabled = "true" })

2、有默认选中值
@Html.DropDownList("Type")

请问第一种默认选中值如何实现?

 

 

Controller中代码是:

public ActionResult Add()
{
      ViewData["Type"] = PromotionTypeList().AsEnumerable();
      return View();
}
Add()

 

public static SelectList PromotionTypeList()
{
       List<SelectListItem> items = new List<SelectListItem>()
       {
                new SelectListItem(){Text="--请选择--", Value="",Selected = false},
                new SelectListItem(){Text="全场满赠", Value="0",Selected = false},
                new SelectListItem(){Text="分类满赠", Value="1",Selected = false},
                new SelectListItem(){Text="买赠", Value="2",Selected = false},
                new SelectListItem(){Text="首单", Value="3",Selected = false},
                new SelectListItem(){Text="特价", Value="4",Selected = false},
                new SelectListItem(){Text="打折", Value="5",Selected = true},
        };

        SelectList generateList = new SelectList(items, "Value", "Text",5);

        return generateList;
}
PromotionTypeList


 运行结果如图:

无涯哒的主页 无涯哒 | 初学一级 | 园豆:157
提问于:2015-07-17 14:49
< >
分享
最佳答案
0

我也遇到这个问题了,困扰了我几个小时,现在解决了,用SelectList绑定,不要用IEnumable<SelectListItem>,,不知道微软为什么不修复这个问题

@{

var selectList = new SelectList(approverList, "Id", "FullName", Model.Approvers[i].Id);

}

@Html.DropDownListFor(m => m.Approvers[i].Id, selectList, "", new { @class = "form-control approver" })
收获园豆:35
felixnet | 菜鸟二级 |园豆:239 | 2015-12-02 12:34
其他回答(4)
0

你这个地方不是设置了Selected=true了吗,难道下拉框中不是默认选中这个选项?

收获园豆:5
木木牛流马 | 园豆:105 (初学一级) | 2015-07-17 16:50

这种写法的确没选中

Html.DropDownListFor(m => m.Type, ViewData["Type"] as IEnumerable<SelectListItem>, new { @class = "form-control", disabled = "true" })

 

这种写法是选中了的

@Html.DropDownList("Type")

我需要第一种写法

支持(0) 反对(0) 无涯哒 | 园豆:157 (初学一级) | 2015-07-18 13:00

@无涯哒: 问一下,对于这种没有默认值的,你最后还是通过脚本控制让他选中的吗?

支持(0) 反对(0) 木木牛流马 | 园豆:105 (初学一级) | 2015-08-11 10:07
0

我一般都是用脚本让他选中一下,这样不容易出错。

收获园豆:5
at小怪兽 | 园豆:760 (小虾三级) | 2015-07-17 17:33

嗯,这也是一种办法

支持(0) 反对(0) 无涯哒 | 园豆:157 (初学一级) | 2015-07-18 13:03
0

对于第一种用法,你只需要设置Type的值就可以选中了。也就是前台的m.Type的值。

收获园豆:5
幻天芒 | 园豆:36522 (高人七级) | 2015-07-17 18:53

我也这样用过,没效果,选不中。所以请教各位大神了

支持(0) 反对(0) 无涯哒 | 园豆:157 (初学一级) | 2015-07-18 13:01

@无涯哒: 这不科学,,,,这个Type需要匹配的是Value的值、

支持(0) 反对(0) 幻天芒 | 园豆:36522 (高人七级) | 2015-07-18 13:26
0

补充一下,我也碰到这种问题。
数据源是IEnumerable<SelectListItem>,但是不能在循环里使用。具体情况没来得及查明

这样是不可以的,在循环外面声明一个list,每次循环时使用

如要在循环中可用,这样既可。每次声明一个SelectList,感谢 felixnet 启发

雄风哥 | 园豆:55 (初学一级) | 2017-06-16 10:26
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册