|
分類:[.NET 全般]
Visual Studio Community 2015 Fw4.6 C# です。
モデルのIEnumerableのメンバーのDisplayNameの出力方法がわかりません。
ビューの★部分です。
ご教示お願いいたします。
モデル
-------------------
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
namespace WebMvc_CSharp.Models
{
public class TestViewModel
{
public string Title { get; set; }
public HedModels Hed { get; set; }
public IEnumerable<BodyModels> Body { get; set; }
}
public class HedModels
{
[Display(Name = "ヘッダNo")]
public int ID { get; set; }
[Display(Name = "ヘッダ名称")]
public string Name { get; set; }
}
public class BodyModels
{
[Display(Name = "明細No")]
public int ID { get; set; }
[Display(Name = "明細名称")]
public string Name { get; set; }
}
}
コントローラー
-------------------
using System.Collections.Generic;
using System.Web.Mvc;
namespace WebMvc_CSharp.Controllers
{
public class TestController : Controller
{
public ActionResult Index()
{
var vmdl = new Models.TestViewModel();
vmdl.Title = "Multi Model Sample";
vmdl.Hed = new Models.HedModels(){ ID = 1, Name = "HeaderA" };
vmdl.Body = new List<Models.BodyModels>()
{
new Models.BodyModels { ID = 1, Name = "BodyA" },
new Models.BodyModels { ID = 2, Name = "BodyB" },
new Models.BodyModels { ID = 3, Name = "BodyC" },
new Models.BodyModels { ID = 4, Name = "BodyD" },
new Models.BodyModels { ID = 5, Name = "BodyE" }
};
return View(vmdl);
}
}
}
ビュー
-------------------
@model WebMvc_CSharp.Models.TestViewModel
<h2>@Html.DisplayFor( mdl => mdl.Title)</h2>
<dl>
<dt>@Html.DisplayNameFor(mdl => mdl.Hed.ID)</dt>
<dt>@Html.DisplayFor(mdl => mdl.Hed.ID)</dt>
<dt>@Html.DisplayNameFor(mdl => mdl.Hed.Name)</dt>
<dt>@Html.DisplayFor(mdl => mdl.Hed.Name)</dt>
<dt>明細データ</dt>
<dd>
<table>
<tr><th>@Html.DisplayNameFor(★ここがわからない★)</th><th>@Html.DisplayNameFor(★ここがわからない★)</th></tr>
@foreach (var b in Model.Body)
{
<tr><td>@Html.DisplayFor(mdl => b.ID)</td><td>@Html.DisplayFor(mdl => b.Name)</td></tr>
}
</table>
</dd>
</dl>
|