asp.net-mvc-3 – DropDownListFor – 不选择“Selected”值
关于DropDownListFor的另一个问题是不选择“Selected”值.
这里是代码: 模型: public class CreateEditAccountModel { [Required] [Display(Name = "Permission")] public int PermissionId { get; set; } public IEnumerable<SelectListItem> Permissions { get; set; } } 控制器: [HttpGet] [Authorize] public ActionResult EditAccount(int id) { CreateEditAccountModel model = new CreateEditAccountModel(); model.Permissions = PermissionsAll(); return View("CreateEditAccount",model); } 在这一点上,如果我在返回行上放了一个断点,那么model.Permissions包含正确的IEnumerable< SelectListItem>对象具有多个项目,只有一个,具有Selected = true. 视图: @using (Html.BeginForm()) { @Html.DropDownListFor(m => m.PermissionId,Model.Permissions) } 呈现: <select id="PermissionId" name="PermissionId"> <option value="">-- Select --</option> <option value="1">Permission one</option> <option value="2">Permission two</option> </select> 由于某些原因,在任何选项上没有选定的属性,并且选择了第一个选项. 任何帮助是赞赏. UPDATE 它似乎与这个article有关系.为了总结本文的解决方案,我需要确保属性名称(@ html.DropDownList的第一个参数)与模型的任何现有属性不匹配.有人可以解释为什么会这样吗? 当我在视图中写入这样的时候,它会正确地下拉: @Html.DropDownList("PermissionIdNotMatching",Model.Permissions) 但是,由于我实际上希望binder能够将select元素的名称与model属性相匹配,所以没有任何逻辑意义.否则我必须手动获取这样的值:Request.Form [“PermissionIdNotMatching”]; 有人有什么想法吗? 解 看到接受的答案和第一个评论. 解决方法
好的,让我们讨论一下你的例子,当PermissionId是int时.您发布的类型CreateEditAccountModel的模型可以查看.创建此模型时,PermissionId等于0(int的默认值).而DropDownListFor在视图中获取此值.因此,您没有选择值.
当您使用字符串类型时,PermissionId的默认值为null,因此“DropDownListFor”取为SelectList的默认值. 在这种情况下,最好使用int?或Nullable< int>键入PermissionId. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 从yield关键字看IEnumerable和Collection的区别
- 每次在ASP.NET中触发哪个事件
- 如何在ServiceStack服务实现中使用标准的ASP.NET会话对象
- asp.net – 使用CRC的较短GUID
- 如何在使用ASP.NET友好URL时忽略某些路由?
- asp.net – 403禁止错误
- asp.net-mvc – 使用ModelState.Remove处理ModelState是否正
- asp.net – 如何在页面加载中以编程方式向页面添加控件?
- ASP.Net WebApi身份验证和安全性
- asp.net-mvc – JSON,ASP.NET MVC – MaxJsonLength异常
- asp.net-mvc – 将角色动态映射到ASP.Net MVC中的
- asp.net-mvc – ASP.Net MVC – 视图中的空对象
- asp.net-mvc – MVC Razor RC 1:可以用字符串常
- asp.net 将一个图片以二进制值的形式存入Xml文件
- asp.net-mvc – 我可以在MVC区域内部署javascrip
- asp.net-mvc – Windsor NHibernate ISession MV
- ASP.NET应用程序中的浏览器缓存
- 一步一步创建ASP.NET MVC5程序[Repository+Autof
- 在ASP.Net MVC和IIS 7.5中设置最佳http缓存头和服
- asp.net – 在ASPX中为RadioButtonList设置ListI