Как перейти к контроллеру ASP. NET MVC в приложении Blazor? - PullRequest
3 голосов
/ 09 января 2020

У меня есть DownloadController.cs до Controllers/DownloadController с использованием следующего метода:

public async Task<ActionResult> DownloadFile(string key) 
{
    return File(...);
}

Кроме того, в моем Startup.cs я настроил следующие конечные точки:

app.UseEndpoints(endpoints =>
{
    endpoints.MapControllerRoute(
        name: "default".
        pattern: "{controller}/{action}");
    endpoints.MapControllers();
    endpoints.MapBlazorHub();
    endpoints.MapFallbackToPage("/_Host");
});

Так как в представлении Blazor я могу перейти к действию контроллера? Я искал что-то похожее на это:

@Html.ActionLink(...);

Ответы [ 2 ]

3 голосов
/ 10 января 2020

Это должно сделать:

@page "/MvcLinkExample"
@inject NavigationManager NavigationManager

<button @onclick="NavigateToMvcPage">MVC Link</button>

@code {
    private void NavigateToMvcPage()
    {
        NavigationManager.NavigateTo("controllername/actionname/10", true);
    }
}
0 голосов
/ 09 января 2020

MVC использует «маршруты» для настройки сопоставлений конечных точек (контроллер / действие / область).

В приведенном вами примере маршрут будет преобразован в http (s): // [hostname or ip] / Download / DownloadFile /.

При использовании «маршрута по умолчанию» key 'параметр строки запроса может быть предоставлен через? key = [value-xxx] в качестве базовой реализации c.

...