asp.net-mvc – 如何使用Html.DropDownList为默认选项设置值
我正在使用ASP MVC RC1.
我正在使用的表单包含一个下拉列表,我已将此代码放在视图中. <%= Html.DropDownList("areaid",(SelectList)ViewData["AreaId"],"Select Area Id")%> 但是,渲染时,这就是我得到的 <select id="areaid" name="areaid"> <option value="">Select Area Id</option> <option value="1">Home</option> ... </select> 我想要的是选择区域ID选项的值为0,默认情况下将其标记为已选中,因此它与其他值一致,我可以验证是否已选择某个区域,因为它是强制性的值. AreaId是一个整数,所以当我当前点击表单而根本没有触及下拉列表时,MVC抱怨“”不是整数并且给我一个绑定错误. 那么如何设置默认选项的值,然后在表单上选中它? 谢谢,丹 解决方法
我认为你有三个选择.首先,当您构建SelectList或可枚举SelectItemList时,请在选择前添加选项标签和默认值.如果在模型中尚未选择其他值,则将其置于顶部将使其成为默认值.其次,您可以使用循环创建选项,在视图中“手动”构建选择(和选项).同样,如果模型中未提供默认选择,则前置默认选择.第三,使用DropDownList扩展,但在加载页面后使用javascript修改第一个选项的值.
似乎不可能使用DropDownList扩展为optionLabel分配值,因为它被硬编码为使用string.Empty.以下是http://www.codeplex.com/aspnet的相关代码段. // Make optionLabel the first item that gets rendered. if (optionLabel != null) { listItemBuilder.AppendLine(ListItemToOption(new SelectListItem() { Text = optionLabel,Value = String.Empty,Selected = false })); } 编辑:最后,最好的方法是让您的模型采用Nullable值并使用RequiredAttribute将其标记为必需.我建议使用视图特定的模型而不是视图的实体模型.由于该值为Nullable,如果在没有选择值的情况下回发,则空字符串将正常工作.将其设置为必需值将导致模型验证失败,并显示需要该值的相应消息.这将允许您按原样使用DropdownList帮助程序. public AreaViewModel { [Required] public int? AreaId { get; set; } public IEnumerable<SelectListItem> Areas { get; set; } ... } @Html.DropDownListFor( model => model.AreaId,Model.Areas,"Select Area Id" ) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 多对多的ASP.NET MVC绑定
- asp.net-mvc – 如何通过保持’templateurl’原样来编译ang
- 在ASP.NET应用程序之间传递会话数据
- 在ASP.Net中使用参数
- asp.net – 在标题后添加Gridview行
- 详解 ASP.NET Core MVC 的设计模式
- asp.net – 当DataList为空时需要显示消息
- asp.net-mvc-4 – MVC 4中的HttpContext.Current.Request.I
- 我可能正在开发一个ASP.NET应用程序. Java / PHP开发人员在
- asp.net-mvc-3 – Telerik MVC网格,在运行时从集合或字典中