У меня есть компонент вида, который должен выполнить некоторую логику, чтобы определить ссылки для отображения.Ссылки должны передавать некоторые параметры в содержащий контроллер, чтобы он знал, что отображать.
Я пытался использовать помощник @Url.Action("Method", "Controller", new { param = "param" })
для генерации ссылки, но внутри компонента представления этот помощник не знает, как правильносгенерируйте этот URL.
Вместо этого в моем файле Default.cshtml я создаю ссылки, подобные этим:
<a asp-action="Navigate" asp-route-function="@function">@function</a>
Я ввел контроллер содержащего представления в компонент представления иЯ использую следующий код в компоненте представления:
public class FunctionSelectorViewComponent : ViewComponent
{
private readonly ParentController parentController;
public FunctionSelectorViewComponent(ParentController parentController)
{
this.parentController = parentController;
}
public IActionResult Navigate(string function)
{
return this.parentController.Navigate(function);
}
}
Этот подход работает, но он выглядит немного плохо, так как он делает класс ViewComponent зависимым от parentController.
Есть лилучший подход к решению этой проблемы?