2017-05-05 28 views
6

Jestem w trakcie radzenia sobie z ASPNET CORE [wersja 1.1, używając społeczności VS2017, wersja 15.1 (26403.3)] Stworzyłem działający ViewComponent o nazwie UserDetails (w skrócie poniżej) :TagHelper dla ASPNET CORE ViewComponent nie działa

namespace AdminConsole.ViewComponents 
{ 
[ViewComponent(Name = "UserDetails")] 
public class UserDetailsViewComponent : ViewComponent 
{ ...does stuff... } 

i mogę powołać się go z powodzeniem w widoku za pomocą

@await Component.InvokeAsync("UserDetails") 

wolałbym ją wywołać za pomocą TagHelper, ale po prostu nie dzieje. Przeszukałem SO i inne przydatne strony, a podczas gdy inni wydają się działać, nie mogę.

Dodałem wiersz w _ViewImports.cshtml i <vc:user-details></vc:user-details> w widoku Chcę renderować VC i nie wyświetla; Nie dostaję błędu, po prostu się nie wyświetla.

Jeśli zmienię deklarację TagHelper na @addTagHelper *, AdminConsole (bez znaczników mowy), to również ona nie będzie renderować ani nie będzie występować błąd.

Jeśli wypróbuję obie powyższe kombinacje i wypróbuję <vc:UserDetails></vc:UserDetails>, tj. Bez przypadku kebaba, to nie wyrenderuje ani błędu.

My _ViewImports.cshtml jest następujący

@using AdminConsole 
@using AdminConsole.Models 
@using AdminConsole.Models.AccountViewModels 
@using AdminConsole.Models.ManageViewModels 
@using Microsoft.AspNetCore.Identity 
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 
@inject Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration TelemetryConfiguration 
@addTagHelper "*, AdminConsole" 

Korzystanie z pełną nazw dla VC w deklaracji @addTagHelper (AdminConsole.ViewComponents) generuje błąd cannot resolve TagHelper.

Myślę, że wypróbowałem wszystkie permutacje, a dokumentacja ze źródeł oficjalnych i społecznościowych sugeruje tylko to, co próbowałem (i inne!). Byłbym bardzo wdzięczny, gdyby ktoś mógł pomóc rzucić trochę światła.

+0

Mam również tego rodzaju problem, wszelkie dostępne rozwiązania? – riza

+0

Witaj, Riza, spytałem o to samo zadanie na forach ASP.NET ... i niestety nie otrzymałem odpowiedzi. Czy można uzyskać renderowanie VC za pomocą metody '@await Component.InvokeAsync (" ComponentName ")'? To działa dla mnie, ale TagHelper nie działa. –

+0

yes, @await Component działa, ale TagHelper nie. Nadal próbuję znaleźć rozwiązanie, opublikuję odpowiedź, jeśli kiedykolwiek napotkam jedną z nich: – riza

Odpowiedz