SelectList で選択した ID (CountryId) からテキスト値 (CountryName) を表示するにはどうすればよいですか? SelectList は、詳細ビュー テンプレートに送信されるビュー モデルに含まれています。フィールドには現在 CountryID が表示されています。国名が欲しい。
見る
<div class="display-field">@Model.Dinner.CountryID</div>
コントローラ
public ActionResult Details(int id)
{
Dinner dinner = dinnerRepository.GetDinner(id);
DinnerFormViewModel model = new DinnerFormViewModel(dinner);
if (dinner == null)
return View("NotFound");
else
return View("Details", model);
}
ビューモデル
public class DinnerFormViewModel
{
public Dinner Dinner { get; private set; }
public SelectList CountriesList { get; private set; }
public DinnerFormViewModel(Dinner dinner)
{
Dinner = dinner;
var items = new List<Country>() {
new Country() {
CountryID = 1,
CountryName = "England"
},
new Country() {
CountryID = 2,
CountryName = "Ireland"
},
new Country() {
CountryID = 3,
CountryName = "Scotland"
},
new Country() {
CountryID = 3,
CountryName = "Wales"
}
};
CountriesList = new SelectList(items, "CountryID", "CountryName", 2);
}
}
ここでも、CountryName 値をラベルに表示するだけです。それか何かを編集したくありません。LINQ式?