在 Razor 视图引擎中将 HTML 元素传递给 Func<>

4
我正在查看一些示例代码,看到了这样的内容:
@(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" 辅助方法,它的签名如下:
```DataList```
public static IHtmlString DataList<T>(this HtmlHelper helper, IEnumerable<T> items, int columns, Func<T, HelperResult> template) where T : class

他们将以下部分传递为 Func<T,HelperResult> 模板,它完美地工作:
  @<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>

这是什么规则?它怎么可能实现呢?
1个回答

3

好的,看来我已经找到我想要的东西了。非常感谢您! - Tarik

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接