"データベースファーストモデル"を使用してASP.NET Core MVC RC2プロジェクトを使用しています。データベースは有名なNorthwindデータベースです。データソースがなくてもタグヘルパー選択要素が空です
次のアクションメソッド:すべてはViewBag
データが移入されているものとする「を選択し、タグヘルパー」(HTMLドロップダウンリスト)ViewBag
データがない空であっても空であることを除いて正常に動作しますCustomersController
に正しく、すべての顧客のリストが表示されます。
public IActionResult Index()
{
List<Customers> data = repository.SelectAll();
return View("/views/Northwind/Index.cshtml", data);
}
ユーザーがレコードの「編集」リンクをクリックすると、次のようEdit
アクションが正常にドロップダウンする以外は編集フォームでそのレコードの値を表示国は空です:
public IActionResult Edit(string id)
{
Customers data = repository.SelectByID(id);
var query = (from c in repository.Context.Customers
orderby c.Country ascending
select new SelectListItem() { Text = c.Country, Value = c.Country }
).Distinct();
List<SelectListItem> countries = query.ToList();
ViewBag.Countries = countries;
return View("/views/Northwind/Edit.cshtml", data);
}
次は、編集可能なデータを表示する「ビュー」であるドロップダウンが空白であることを除い:
@model MVCCoreCR2_Project.Models.Customers
<div class="form-group">
<label asp-for="Country" class="col-md-2 control-label"></label>
<div class="col-md-10">
<select asp-for="Country" asp-items="@ViewBag.Countries" class="form-control" />
<span asp-validation-for="Country" class="text-danger" />
</div>
</div>
注:デバッグ時には、私はブレイクを入れて<select asp-for="Country" asp-items="@ViewBag.Countries" class="form-control" />
のポイントと私はViewBagで国が記入されて見ることができます。
using'@Html.DropDownListFor(モデル=> model.selectedCountry、IEnumerableを)ViewBag.Countries、新しい{@class = "フォームコントロールを"}試し) ' –
する必要があります次の正しいタグ。 [tag:asp.net-mvc]は、従来のASP.NET MVC Webstack(MVC 1〜5)用です。 ASP.NETコアの場合[タグ:asp.net-core-mvc] – Tseng