asp.net – DropDownList对于不选择值的集合
发布时间:2020-12-16 07:39:19 所属栏目:asp.Net 来源:网络整理
导读:我正在使用带有自定义视图模型的强类型视图.此视图模型包含一组书籍. public IListBooks Books { get; private set; } 我也将一个选择列表传递给视图.但是,DropDownListFor帮助程序类不会自动预选图书的默认值. @Html.DropDownListFor(m = Model.Books[i].Au
我正在使用带有自定义视图模型的强类型视图.此视图模型包含一组书籍.
public IList<Books> Books { get; private set; } 我也将一个选择列表传递给视图.但是,DropDownListFor帮助程序类不会自动预选图书的默认值. @Html.DropDownListFor(m => Model.Books[i].AuthorID,Model.Author as SelectList) 其他一切都有效,例如:它确实将选定的值传递回控制器. 我通过在viewmodel中创建选择列表找到了一种解决方法: @Html.DropDownListFor(m => Model.Books[i].AuthorID,new SelectList(Model.AuthorList,"Value","Text",@Model.Books[i].AuthorID.ToString())) 但是,如果有一个更简单的解决方案,我不想实现此解决方法.有没有办法让视图可以处理集合中的值? 解决方法
您应该像在解决方法中一样将作者列表作为模型的一部分传递.您可以在控制器中生成选择列表,但不要求在视图中创建列表.就像是:
@Html.DropDownListFor(m => Model.Books[i].AuthorID,Model.AuthorList) 如果您在控制器中创建列表,这将有效: var model = new ViewModel() { AuthorList = new SelectList(Model.AuthorList,"Text"),}; 它将处理自己设置所选项目. 至于为什么你的Model.Author作为SelectList不起作用,我猜测Model.Author不是作者姓名和ID的列表.它可能是一个域对象,并使用as返回null. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 修改FCKEditor实现将图片、文件等保存到数据库
- asp.net-mvc-4 – 使用活动目录角色提供者MVC4进行授权
- asp.net-mvc – 由Url.Action生成的Asp.Net MVC错误的URL!
- 在ASP.NET中的Response.Redirect中传递cookie
- asp.net-mvc-3 – 如何使MVC3 DisplayFor显示枚举显示属性的
- asp.net – .NET 4.0实现OutputCacheProvider
- asp.net-mvc – 在ASP.NET MVC3 Razor的渲染时间视图中获取
- ASP.NET – 如何在User Control中使用Response.Redirect()?
- asp.net-mvc – 服务层验证
- 如何清除正式环境中的缓存
推荐文章
站长推荐
- oauth-2.0 – 覆盖AccessTokenExpireTimeSpan
- asp-classic – 对经典ASP的多语言支持
- asp.net-mvc – 通过Gitignore递归地包含Nuget D
- asp.net-mvc-3 – 大量使用ViewBag
- asp.net core 从 3.0 到 3.1
- 显示在文本框,标签后面的菜单. ASP.NET/C#
- asp.net – 抛出类型“System.OutOfMemoryExcept
- 将ASP.NET捆绑设置为不删除第三方版权
- asp.net – 在什么情况下,.NET进程和AppDomains在
- asp.net-mvc – mvc asp.net中的自定义成员资格提
热点阅读