使用MVC 5脚手架自动生成下拉列表

时间:2016-08-18 16:40:30

标签: c# asp.net entity-framework asp.net-mvc-5

首先,我一直在寻找这方面的答案并提出解决方案,但不能与我自动生成下拉列表的确切问题相匹配(只是如何自己制作一个)。

所以,问题是。我喜欢在Visual Studio中使用scaffolding选项,因为它设置了一个具有完整CRUD的控制器和满足我需求的视图。

然而,我只是遇到了一个我希望有一个下拉列表的情况。这是脚手架可以创造的东西吗?或者它实际上是我必须自己做的事情?

例如我有这个模型:

public class School
{
    public int SchoolID { get; set; }

    [Required(ErrorMessage = "A value has to be entered.")]
    [StringLength(200)]
    public string Name { get; set; }

    [Required(ErrorMessage = "A value has to be entered.")]
    [StringLength(200)]
    public string MailPrefix { get; set; }

    public int CountryID { get; set; }

    public virtual List<Country> Country { get; set; }
}

所以我想在这里弄清楚需要做些什么才能使Visual Studio意识到我想创建一个Dropdownlist,这样就可以选择country,然后将countryId保存到数据库中。

我应该指出,我也在Visual Studio中使用Entity Framework和脚手架选项。

非常感谢您提供任何信息!

1 个答案:

答案 0 :(得分:1)

public List<SelectListItem> CountryListItems {get; set;}
public int CountryId {get; set;}

在模型

中使用上面的内容
   Model.CountryListItems= new List<SelectListItem>();
   CountryListItems.Add(new SelectListItem
        {
          Text = "Albania",
          Value = "1"
        });
   CountryListItems.Add(new SelectListItem
        {
            Text = "Bangladesh",
            Value = "2",
            Selected = true
        });
   CountryListItems.Add(new SelectListItem
        {
            Text = "Canada",
            Value = "3"
        });

上面的代码可以在控制器或其他生成器模型类中使用。

@Html.DropDownListFor(model => model.CountryId, model.CountryListItems, "-- Select Status --")

在“视图”中,使用上面的块。

进一步调查:DropDownList in MVC 4 with Razor