错误描述:

控制器部分:

//从数据字典中加载下拉框 (使用DropDownListFor,SelectList 中不需要设置选中值,即便设置了选中值,也会优先读取Model中对应的值)

 ViewBag.Entity= new SelectList(dataDtos.FindAll(c => c.DictTypeName == "Entity"), "Value", "Name");

视图部分:

 @Html.DropDownListFor(m => m.Entity, (SelectList)ViewBag.Entity, "----", new { @class = "form-control", placeholder = "" })

进入编辑状态后发现,已保存的数据,DropDownList无法正常绑定。

解决方法:产生这种问题的原因是实体中的字段 Entity 与 ViewBag的命名Entity一致,将两者名字改成不一致即可。

 //控制器部分:
ViewBag.EntityList = new SelectList(dataDtos.FindAll(c => c.DictTypeName == "Entity"), "Value", "Name");
//视图部分:
@Html.DropDownListFor(m => m.Entity, (SelectList)ViewBag.EntityList, "----", new { @class = "form-control", placeholder = "" })

另外Razor视图循环绑定数组时,下拉框如果使用SelectList赋值,下拉框也是不能正常绑定的:

@Html.DropDownListFor(m => m.NodeList[i].ContractNode, (SelectList)ViewBag.ContractNodeList, "请选择", new { @class = "form-control"})

解决方式:后台传递IEnumerable<T>,而不是SelectList:

@Html.DropDownListFor(m => m.NodeList[i].ContractNode, new SelectList(ViewBag.ContractNodeList, "Value", "Name", Model.NodeList[i].ContractNode), "请选择", new { @class = "form-control"})

参考:https://stackoverflow.com/questions/2278056/dropdownlistfor-not-selecting-value

.net mvc Html.DropDownListFor 设置默认值无效的更多相关文章

  1. oracle设置默认值无效

    一次做农行的项目,在向一个表插入数据时我们要求插入字符类型的操作日期和时间,我们这边当时采取的是给日期和时间字段设置默认值的方法:下面我简单还原一下当时的表结构 -- Create table cre ...

  2. 如何给DropDownListFor设置默认值

    1.直接赋值: @Html.DropDownListFor(o => o.ParentId, ViewBag.root as IEnumerable<SelectListItem>, ...

  3. mysql datetime设置now()无效,直接用程序设置默认值比较好

    mysql datetime设置now()无效的,没有此用法,datetime类型不能设置函数式默认值,只能通过触发器等来搞.想设置默认值,只能使用timestamp类型,然后默认值设置为:CURRE ...

  4. @Html.DropDownList 设置选中值无效

    有时候在ASP.NET  MVC中用@Html.DropDownList 设置选中值无效,如图: 具体原因说不清,反正只要改个名字就行了!!!,如图:::

  5. c#为字段设置默认值,以及构造函数初始化List对象。

    1.为字段设置默认值 /// <summary> /// 默认值 /// </summary> ; ; /// <summary> /// 页的大小 /// < ...

  6. Extjs editor 设置默认值

    一.前言 Ext js 给 editor 设置默认值用 value 无效,在 Model 中添加 defaultValue 即可. 二.实例 view: Ext.define('xxxx.view.P ...

  7. easyui-textbox使用value设置默认值失效

    1,使用easyu-textbox的value参数设置默认值失效,easyui-textbox放到dialog弹框中,当dialog的closed为false时,也就是打开dialog时,设置的val ...

  8. ng-option指令使用记录,设置默认值需要注意

    ng-options一般有以下用法: 数组作为数据源: label for value in array select as label for value in array label group ...

  9. 《Entity Framework 6 Recipes》中文翻译系列 (14) -----第三章 查询之查询中设置默认值和存储过程返回多结果集

    翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 3-6在查询中设置默认值 问题 你有这样一个用例,当查询返回null值时,给相应属性 ...

随机推荐

  1. 【ASP.NET Core】处理异常--转

    老周写的[ASP.NET Core]处理异常非常的通俗易懂,拿来记录下. 转自老周:http://www.cnblogs.com/tcjiaan/p/8461408.html 今天咱们聊聊有关异常处理 ...

  2. 浏览器Request Header和Response Header的内容

    1)请求(客户端->服务端[request])     GET(请求的方式) /newcoder/hello.html(请求的目标资源) HTTP/1.1(请求采用的协议和版本号)     Ac ...

  3. 说说java

    先说什么是java java是一种面向对象语言,真正的面向对象,任何函数和变量都以类(class)封装起来 至于什么是对象什么是类,我就不废话了 关于这两个概念的解释任何一本面向对象语言的教材里面都有 ...

  4. golang基础--常量与运算符

    常量与运算符 常量的定义 常量的值在编译时已经确定 常量的定义格式与变量的基本相同 等号的右侧必须是常量或者常量表达式 规范: 常量定义时建议都使用大写,单词之间使用大写 便于包的外部调用 如果只限于 ...

  5. 深入了解Java虚拟机(2)垃圾收集器与内存分配策略

    垃圾收集器与内存分配策略 由于JVM中对象的频繁操作是在堆中,所以主要回收的是堆内存,方法区中的回收也有,但是比较谨慎 一.对象死亡判断方法 1.引用计数法 就是如果对象被引用一次,就给计数器+1,否 ...

  6. Node.js链式回调

    由于异步的关系,代码的书写顺序可能和执行顺序并不一样,可能想先执行A再执行B,但由于异步可能B要先于A执行.例如在OC中使用AFnetworking请求数据然后刷新页面,由于网络请求是用block实现 ...

  7. vs2010查看quartz.net 2.1.2的源码时其中一报错的解决方法

    问题: 使用vs2010查看quartz.net 2.1.2的源码时,报错: ..\Quartz.NET-2.1.2\server\Quartz.Server\Quartz.Server.2010.c ...

  8. c#基础学习(0706)之使用虚方法实现多态

    使用虚方法实现多态 namespace _0706 { class Program { static void Main(string[] args) { //这个时候调用的是父类的方法 Person ...

  9. insert into 语句的三种写法

    insert into 语句的三种写法 方式1. INSERT INTO t1(field1,field2) VALUES (v001,v002);            // 明确只插入一条Valu ...

  10. C#异步,多线程下的HttpContext丢失问题

    1.思路概述 首先让我把大概的一个思路先说一遍吧. 我在一个页面中要同时调用两个接口,而我要给这些接口一些参数:就是我通过HttpContext.Current.Request.QueryString ...