【问题标题】:How to generate dropdownlist in asp.net MVC razor如何在 asp.net MVC razor 中生成下拉列表
【发布时间】:2013-04-12 12:43:44
【问题描述】:

在我的剃须刀中,我正在生成这样的下拉列表。

    @{
        var listItems = new List<ListItem> 
        { 
              new ListItem { Text = "Home To School", Value = "0" }, 
              new ListItem { Text = "School To Home", Value = "1" } 
        };
    }

@Html.DropDownList("Direction", new SelectList(listItems),new {onchange = "getAlldata()"})

由此生成的HTML是这样的

<select id="Direction" name="Direction" onchange="getAlldata()">
<option>Home To School</option>
<option>School To Home</option>
</select>

但我想生成类似这样的 HTML

<select id="Direction" name="Direction" onchange="getAlldata()">
<option value="0">Home To School</option>
<option value="1">School To Home</option>
</select>

我该怎么做。

【问题讨论】:

    标签: asp.net-mvc-3 razor asp.net-mvc-4


    【解决方案1】:

    Here 是一些如何使用 Razor 构建 DropDownList 的示例,例如使用 SelectListItem 的示例:

    public ActionResult Index()
    {
      var db = new NorthwindEntities();
      IEnumerable<SelectListItem> items = db.Categories
        .Select(c => new SelectListItem
                       {
                         Value = c.CategoryID.ToString(), 
                         Text = c.CategoryName
                       });
      ViewBag.CategoryID = items;
      return View();
    }
    

    编辑:

    检查一下:

    @Html.DropDownList("Direction", new List<SelectListItem>
    {
      new SelectListItem{ Text = "Home To School", Value = "0" },
      new SelectListItem{ Text = "School To Home", Value = "1" } 
    },new {onchange = "getAlldata()"})
    

    【讨论】:

    • 我必须只在视图中生成我的下拉列表。如我的问题所示,它也是静态的。
    • @vaibhavshah 这只是一个使用文章中引用的SelectListItem 集合的示例来展示一种方法,我不明白-1。我现在添加了另一种适合您的数据的方式。
    • @vaibhavshah 你能解释一下这个-1吗?我给了你这篇文章,对这个问题有不同的答案,并引用了其中一个。我认为没有理由拒绝投票。
    • getAlldata()的定义去哪了?
    【解决方案2】:

    这样使用

    @Html.DropDownList("Direction", new SelectList(listItems , "Value" , "Text"),new {onchange = "getAlldata()"})
    

    【讨论】:

    • 函数“getAlldata()”的定义放在哪里?
    • 或者简单的@Html.DropDownList("Direction", llistItems, new {onchange = "getAlldata()"}) - 从现有的SelectList 创建第二个SelectList 是毫无意义的额外开销
    猜你喜欢
    • 1970-01-01
    • 2014-06-29
    • 2014-09-02
    • 2017-05-04
    • 2016-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多