我有两个表,代码和国家/地区,在countries.id上的codes.countryid上有外键约束 - 我正在使用visual studio 15中的控制器mvc设置给出的基本crud但是想要替换文本使用select for countryid输入,以便用户可以从下拉列表中选择一个国家/地区作为输入id作为int。
如何通过提供的模型访问国家/地区列表?以下示例剃刀代码。我是否需要从其他模型获取国家/地区列表?
<div class="form-group">
<label for="CountryId" class="control-label col-md-2">Country</label>
<select name="CountryId" class="form-control" required>
<option value="">Please select ...</option>
/* Model.Countries is not available even after a foreignkey constraint? */
@foreach(var i in Model.Countries)
{
<option value="@i.id">@i.Name</option>
}
</select>
@Html.ValidationMessageFor(model => model.CountryId, "", new { @class = "text-danger" })
@Html.LabelFor(model => model.CountryId, htmlAttributes: new { @class = "control-label col-md-2" })
</div>
答案 0 :(得分:0)
您应该在控制器操作中使用国家/地区列表设置ViewBag
变量。
假设您的控制器中有一个数据库上下文,您应该将以下代码放在您的操作中
ViewBag.CountriesList = new SelectList(_context.countries.ToList(), "Id", "Name");
在视图中使用如下
@Html.DropDownListFor(a => a.countryId, (SelectList)ViewBag.CountriesList , htmlAttributes: new { @class = "form-control" })