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. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – ASP.net 5 MVC 6 bower.json和project.json
- asp.net – system.web.compilation.debug与system.codedom
- asp.net – 如何在codebehind中调用Eval?
- 如何防止我的asp.net网站被屏幕刮掉?
- asp.net-mvc-3 – Structuremap,AutoFac或Ninject,哪一个适
- 遭遇Asp.Net长文件名下载的问题和解决办法
- 在ASP.NET Core 2.0 / Angular模板应用程序上发布失败
- asp.net – 在会话中存储购物车
- asp.net – 滚动的Log4Net日志文件中的自定义文件名?
- ASP.NET MVC和Web Forms在同一个Web应用程序中?
- asp.net – 在.net 3.5 SP1中设置表单的操作会在
- asp.net-mvc – 命名约定 – 控制器的一个规则,没
- 为什么在ASP.NET中刷新页面时会执行按钮单击事件
- asp.net – 从我的GridView行返回一个对象
- entity-framework-4 – 首先在实体框架代码中使用
- asp.net-mvc – 在MVC中,何时使用%=%和%%?
- ASP.Net Core Web Api中的异步视频流不起作用
- asp.net – 对框架程序集“System.Runtime,Versi
- asp.net – 如何在页面加载时以“添加新”模式进
- asp.net-mvc – 在嵌套内容的区域上使用_ViewSta
