加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – ASP.NET MVC下拉列表

发布时间:2020-12-16 04:16:21 所属栏目:asp.Net 来源:网络整理
导读:有人能指出我的文章,显示从 linq到sql(正在设置的文本和值)填充的下拉列表. 谢谢 丹尼 解决方法 现在 HtmlHelper扩展采用IEnumerable SelectListItem,我不创建SelectList,但通常只是用LINQ创建SelectListItems. 调节器 ViewData["CategoryID"] = categories.
有人能指出我的文章,显示从 linq到sql(正在设置的文本和值)填充的下拉列表.

谢谢
丹尼

解决方法

现在 HtmlHelper扩展采用IEnumerable< SelectListItem>,我不创建SelectList,但通常只是用LINQ创建SelectListItems.

调节器

ViewData["CategoryID"] = categories.Select( c => new SelectListItem
                                                 {
                                                     Text = c.CategoryName,Value = c.CategoryID
                                                 }
                                          );

视图

<%= Html.DropDownList("CategoryID") %>

或者如果我想要默认选择

<%= Html.DropDownList("CategoryID",(IEnumerable<SelectListItem>)ViewData["CategoryID"],"Select a Category" ) %>

编辑:

下拉列表中有趣的一点是,您需要提供一系列值,从中选择适合您实际数据模型的单个值.我通常通过视图数据提供范围(菜单项),并期望在发布页面时返回模型值.如果您也想要强类型菜单,则需要提供一个仅包含视图的模型来封装您的真实模型和任何菜单.这将涉及在发布时使用前缀来标识模型元素.在我看来,权衡是对帖子的简单模型绑定与在视图中使用强类型菜单.我没有挂在后者上,所以我选择不把我的菜单放在模型中.但是,如果您想这样做,它可能如下所示.

模型

public class CategoryViewModel
{
    public Category Category { get; set; }
    public IEnumerable<SelectListItem> CategoryMenu { get; set; }
    ...
}

调节器

显示动作

var model = new CategoryViewModel();
model.CategoryMenu = categories.Select( c => new SelectListItem
                                                 {
                                                     Text = c.CategoryName,Value = c.CategoryID
                                                 }
                                      );

...
return View(model);

创建行动

[AcceptVerbs( HttpVerbs.Post )]
public ActionResult Create( [Bind(Prefix="Category")]Category category )
{
   ...
}

视图

<%= Html.TextBox("Category.Name") %>

<%= Html.DropDownList("Category.CategoryID",Model.CategoryMenu,"Select a Category" ) %>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读