简单类别字段的MVC下拉列表中的Razor视图

时间:2014-01-03 15:10:30

标签: asp.net-mvc-4 razor html-select

我无法理解如何使用我在这里看到的示例来为我的模型制作一个下拉列表。我正在创建一个用于添加新项目的页面。我的页面的模型是定义我试图添加的项目的类,而不是下拉列表(我发现的示例使用的列表)。所以我的页面模型是:

@model HomeManager.Domain.InventoryItem

InventoryItem

的位置
public  class InventoryItem

{
    public virtual  int Id { get; set; }
    public virtual DateTime Added { get; set; }
    [Required]
    [StringLength(50, ErrorMessage="Item name cannot exceed 50 characters.")]
    public virtual string Name { get; set; }
    public virtual string Size { get; set; }
    public virtual Location Location { get; set; }
    public virtual string Instructions { get; set; }
    public virtual int Count { get; set; }

    public virtual string UPC { get; set; }


    public InventoryItem()
    {
        // default non null dattetimevalues
        Added = DateTime.Now;

    }
}

我最终要保存的项目将具有该位置的ID。我在这里看到的所有示例都有查找(在我的情况下,位置是一个简单的Id名称对)作为模型,如果我的页面的其余部分用于项目,该模型将不起作用。

我知道这很漂亮。我很感激帮助。

取值

1 个答案:

答案 0 :(得分:1)

在您的模型中包含IEnumerable<Location>属性,该属性具有Location的所有可能性。然后,像这样设置DropDownList

@Html.DropDownListFor(m => m.Location.LocationId, new SelectList(Model.Locations, "LocationId", "LocationName"), "Select Location...", new {id = "whatever"})

我不知道你的Location类型是什么样的,所以我只是推断了名字。

有关详细信息,请参阅SelectList constructor documentation