ASP.NET MVC中DropDown列表的助手

时间:2015-07-07 14:30:04

标签: c# asp.net-mvc razor

我正在创建ASP.NET MVC应用程序,我在“注册”页面中的下拉列表有问题。

首先,我的模型(由EF在“数据库优先”模式下创建):

public partial class User()
{
    ...
    public int CountryId { get; set; }
}

public partial class Country()
{
    ...
    public int Id { get; set; }
    public String Name { get; set; }
}

注意:用户和国家/地区与CountryId相关(不是集合)

在我的控制器

ViewBag.countries = context.Countries.ToList();

return View();

在我的视图

<select name="CountryId" id="CountryId">
    @foreach (var item in ViewBag.countries)
    {
        <option value="@item.Id" id="@item.Id">@item.Name</option>
    }
</select>

所以,我认为我需要使用这个助手:

@Html.DropDownList
@Html.DropDownListFor

但做工作是不可能的......

ASP.NET for views的默认代码是:

<div class="form-group">
    @Html.LabelFor(model => model.CountryId, "CountryId", htmlAttributes: new { @class = "control-label col-md-2" })
    <div class="col-md-10">
        @Html.DropDownList("CountryId", null, htmlAttributes: new { @class = "form-control" })
        @Html.ValidationMessageFor(model => model.CountryId, "", new { @class = "text-danger" })
    </div>
</div>

此代码抛出此错误:

附加信息:没有类型为“IEnumerable”的ViewData项具有键“CountryId”。

有什么建议吗? 提前致谢 !!

0 个答案:

没有答案