Если вы находитесь в модели просмотра, вы можете просто позвонить Context.RedirectToRoute("YourRoute", new { Param1 = something })
.
Если вы хотите перенаправить из другого места, самый простой способ - создать интерфейс INavigationService
и реализовать его для вызова метода на IDotvvmRequestContext
(который уже зарегистрирован в внедрении зависимостей ASP.NET Core).контейнер):
public interface INavigationService
{
void NavigateTo(string routeName, object routeParameters);
}
public class DotvvmNavigationService
{
private IDotvvmRequestContext context;
public DotvvmNavigationService(IDotvvmRequestContext context) {
this.context = context;
}
public void NavigateTo(string routeName, object routeParameters) {
this.context.RedirectToRoute(routeName, routeParameters);
}
}
Затем вы можете просто зарегистрировать реализацию как область действия зависимость в Startup.cs
, и вы сможете получить ее в любом месте.
services.AddScoped<DotvvmNavigationService>();