私はいくつかのサンプルコードをチェックしていましたが、次のようなものを見ました:
@(Html.DataList<ProductOverviewModel>(Model, 4,
@<div class="item-box">
<div class="item">
<div class="picture">
<a href="@Url.RouteUrl("Product", new { productId = item.Id, SeName = item.SeName })" title="@item.DefaultPictureModel.Title">
<img alt="@item.DefaultPictureModel.AlternateText" src="@item.DefaultPictureModel.ImageUrl" title="@item.DefaultPictureModel.Title" /></a>
</div>
<div class="product-title">
<a href="@Url.RouteUrl("Product", new { productId = item.Id, SeName = item.SeName })" title="@item.DefaultPictureModel.Title">
@item.Name</a>
</div>
</div>
</div>
))
したがって、基本的には、DataList
署名であるヘルパーメソッドがあります。これは次のとおりです。
public static IHtmlString DataList<T>(this HtmlHelper helper, IEnumerable<T> items, int columns, Func<T, HelperResult> template) where T : class
そして、彼らは次の部分を次のように渡しましたFunc<T,HelperResult> template
。それは完全に機能します:
@<div class="item-box">
<div class="item">
<div class="picture">
<a href="@Url.RouteUrl("Product", new { productId = item.Id, SeName = item.SeName })" title="@item.DefaultPictureModel.Title">
<img alt="@item.DefaultPictureModel.AlternateText" src="@item.DefaultPictureModel.ImageUrl" title="@item.DefaultPictureModel.Title" /></a>
</div>
<div class="product-title">
<a href="@Url.RouteUrl("Product", new { productId = item.Id, SeName = item.SeName })" title="@item.DefaultPictureModel.Title">
@item.Name</a>
</div>
</div>
</div>
これはどのような規則で、どのように可能ですか?