Я пишу простую разбивку на страницы TagHelper, где я хочу, чтобы результат выглядел так:
<ul>
<li><a href="...">Some Text</a></li>
<li><a href="...">Some Other Text</a></li>
...
</ul>
У меня была идея, что при определении моего класса я сгенерирую элементы «a» и украсью их атрибутами asp-controller, asp-action и т. Д., Которые будут отображаться как правильная ссылка href. Вот код, который я придумал:
protected TagBuilder CreatePageLink( int page, bool enabled, string inner )
{
TagBuilder a = new TagBuilder( "a" );
a.MergeAttribute( "asp-controller", AspController );
a.MergeAttribute( "asp-action", AspAction );
a.MergeAttribute( "asp-route-page", page.ToString() );
a.MergeAttribute( "asp-route-itemsPerPage", ItemsPerPage.ToString() );
a.MergeAttribute( "title", $"goto page {page}" );
if( !enabled ) a.AddCssClass( "disabled" );
if( (page == Page) && String.IsNullOrEmpty(inner) ) a.AddCssClass( "active" );
if( String.IsNullOrEmpty( inner ) ) inner = page.ToString();
a.InnerHtml.AppendHtml( inner );
TagBuilder li = new TagBuilder( "li" );
li.InnerHtml.Append( a );
return li;
}
Но это не работает. «Магические атрибуты MVC», такие как asp-controller, отображаются в выходных данных, но результирующие ссылки не работают. Я должен добавить в коде специальный атрибут href к встроенному элементу «a», чтобы ссылка работала.
Как мне вложить TagHelpers, например LinkTagHelper, в мой собственный TagHelper?
AnchorTagHelper
и интегрировать сгенерированный базой вывод - person lc.   schedule 25.04.2016