Просмотр компонента taghelper с областями - PullRequest
0 голосов
/ 19 октября 2018

Я хочу иметь два компонента с одинаковым именем, но в разных областях.

Мой компонент называется C1

Это две области: A1 и A2

Видкласс компонента существует в каждом из соответствующих пространств имен

  • MyProject.Areas.A1.ViewComponents в файле ./Areas/a1/c1ViewComponent.cs
  • MyProject.Areas.A2.ViewComponentsв файле ./Areas/a2/c1ViewComponent.cs

Код компилируется;однако, когда я пытаюсь добавить свой компонент на страницу с тегом:

<div class="component-container c1" id="system-a1-c1">
  <vc:c1></vc:c1>
</div>

Он не может различить два компонента, так как они имеют одинаковые имена, и не может найти путь

Итак, я наблюдал / читал много вещей на taghelpers, но, кажется, ничего не говорит о том, как использовать их с областями

  1. Можно ли добиться эффекта, которого я добиваюсь?
  2. Чтонужно изменить, чтобы достичь этого?

1 Ответ

0 голосов
/ 22 октября 2018

Существует два способа ссылки ViewComponent.

  • Вызовите компонент по @Component.InvokeAsync
  • Вызов компонента представления в качестве помощника по тегам

Для <vc:c1></vc:c1>, вы не можете указать, какойviewcomponent, что означает, что он не будет знать, какой из них использовать.

Вы можете попробовать @Component.InvokeAsync, который может ссылаться на ViewComponent по type.

@await Component.InvokeAsync(typeof(MVCPro.Areas.Admin.ShareViewComponent))
@await Component.InvokeAsync(typeof(MVCPro.Areas.User.ShareViewComponent))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...