3

基本的にすべてのHTML要素とタブ、ページャー、ツリーなどのHTML構造をカバーする一連のHTMLヘルパーを作成しました。これらをTagHelpersに変換したいと思います。しかし、私は1つの本質的なことをする方法を見つけることができませんでした。コレクション/反復のテンプレートをサポートするASP.NET MVCコアTagHelperの作成方法

私の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プロパティの項目タイプが利用できるようにしますラムダ/匿名関数を使用して、定義された列にアイテムプロパティをバインドすることができます。 BoundColumnはテキストをレンダリングし、BoolColumnはboolを値として取り、Yes/Noをレンダリングし、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それは何とか私がしたいと思っていますが、十分に近いものではありません。それはまだ私が避けたいものであるビューの反復を必要とします。主に、タグヘルパーがMVCビューで「HTMLの感触」をサポートするためです。

コレクションアイテムのテンプレートとして動作するTagHelperを構築する方法はありますか?

答えて

0

現在、(3/21/2017現在)TagHelpersはこれに対処するための優れた方法はありません。しかし、TagHelpers hereにテンプレートサポートを追加する問題が継続しています。

+0

リンクありがとうございます。近いうちに何らかの支援が行われることを祈りましょう。 – Tacud

関連する問題