我正在创建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”。
有什么建议吗? 提前致谢 !!