gpt4 book ai didi

c# - 如何编写支持收集/迭代模板的 ASP.NET MVC Core TagHelper

转载 作者:行者123 更新时间:2023-11-30 18:17:46 27 4
gpt4 key购买 nike

我写了一堆 HTML Helpers,基本上涵盖了所有 HTML 元素和一些 HTML 结构,如选项卡、分页器、树等。现在,我想将它们转换成 TagHelpers。但是我找不到一种方法来做一件重要的事情。

为了使用我的 HTML 助手生成表格,您需要编写如下内容:

@(Html.Table(Model.Items).Columns(columns =>
{
columns.BoundColumn(m => m.Id).Class("id");
columns.TemplateColumn().Class("switch")
.Pattern((model, pattern) => pattern.Html(@<span>@(model.Title)</span>));
columns.BoolColumn(m => m.Default);

})

它将集合作为构造函数参数,并使项目类型可用于 Columns 属性,以便可以使用 lambda/匿名函数将项目属性绑定(bind)到定义的列。我有几个列根据其类型呈现文本/html - BoundColumn 呈现文本,BoolColumn 将 bool 作为值并呈现是/否,LinkColumn 呈现链接。还有一个采用 IHtmlString 的 TemplateColumn,这样您就可以传递要为特定列显示的任何 html 结构。

所以我希望 TagHelper 看起来像这样:

<tee-table data-source="Model.Items">
<columns>
<bound value="Id" />
<bool value="Default" />
<template value="SomeComplexType">
<span>@value.Title</span>
</template>
</columns>
</tee-table>

但看起来 TagHelpers 根本不支持这个。我找到了这篇文章:http://www.dotnet-programming.com/post/2015/10/31/Building-Complex-Controls-with-AspNet-MVC-6-TagHelpers.aspx这在某种程度上接近我想做的事情,但还不够接近。它仍然需要在 View 中进行迭代,这是我想避免的。主要是因为 Tag Helpers 应该支持 MVC View 中的“HTML 感觉”。

那么有没有一种方法可以构建一个 TagHelper 作为集合项的模板?

最佳答案

目前(截至 2017 年 3 月 21 日)TagHelpers 没有很好的方法来处理这个问题。但是,向 TagHelpers 添加模板支持存在一个持续的问题 here .

关于c# - 如何编写支持收集/迭代模板的 ASP.NET MVC Core TagHelper,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42857129/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com