0

"データベースファーストモデル"を使用して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で国が記入されて見ることができます。

+0

using'@Html.DropDownListFor(モデル=> model.selectedCountry、IEnumerableを)ViewBag.Countries、新しい{@class = "フォームコントロールを"}試し) ' –

+0

する必要があります次の正しいタグ。 [tag:asp.net-mvc]は、従来のASP.NET MVC Webstack(MVC 1〜5)用です。 ASP.NETコアの場合[タグ:asp.net-core-mvc] – Tseng

答えて

4

<select>@ViewBag.Countries上にカーソルを移動は、自己終了タグではありません。これは、使用してください

<select asp-for="Country" asp-items="ViewBag.Countries" class="form-control"></select> 
+0

私がおそらく捕らえたことのない間違いを指摘していただきありがとうございます。 – nam

関連する問題