繁体   English   中英

ASP.NET MVC 3中的下拉列表

[英]Dropdown in ASP.NET MVC 3

我是MVC的新手,所以很困惑。 有人可以向我解释一下razor中的下拉菜单吗?我的问题是-

  • dropdownlist和dropdownlistfor有什么区别
  • 如何将数据库表的ID列作为值传递,将NAME列作为文本传递。
  • 如何将“其他”添加到下拉列表中。
  • 我如何在后面的代码中访问selectedlistitem。

如果可能,请举例说明。

  1. DropDownList由以下代码生成:

     @Html.DropDownList("PersonId", new SelectList(Model.People, "Id", "Text"); 

    另一方面,DropDownListFor生成如下:

     @Html.DropDownListFor(m => m.PersonId, new SelectList(Model.People, "Id", "Text") 
    DropDownList的问题在于它具有一个魔术字符串,如果您以后决定重构模型,则有很大的变化,您也会忘记更改魔术字符串。

  2. 您可以这样执行LINQ查询:

     var datalist = New SelectList(from x in _peopleService select new SelectListItem { Text = x.Name, Value = x.Id}); 
    如果您之间没有服务或ORM,则需要将其应用于您的情况,但是可以生成类似的列表。

  3. 在nr 2之后,您可以

     datalist.Add(new SelectListItem() { Text = "Other", Value = "-1"}); 
    另外,您还必须将该数据列表放入传递给View的viewmodel / model中,以便可以生成一个selectlist项。 在这种情况下,您可以执行以下操作:
     @Html.DropDownListFor(x => x.PersonId, Model.PersonList); 
    如果您将列表存储为Model中的PersonList。

  4. 在您的Viewmodel(好,mvc中的模型)中,您有一个属性,其中将存储所选项目,请看第一个问题-在这种情况下,所选项目的ID将存储在PersonId属性中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM