我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(...);
这应该可以:
@page "/MvcLinkExample"
@inject NavigationManager NavigationManager
<button @onclick="NavigateToMvcPage">MVC Link</button>
@code {
private void NavigateToMvcPage()
{
NavigationManager.NavigateTo("controllername/actionname/10", true);
}
}
MVC 使用"路由"来配置端点(控制器/操作/区域(映射。
在您提供的示例中,路由将解析为 http(s(://[主机名或 ip]/Download/DownloadFile/。
使用"默认路由",可以通过 ?key=[value-xxx] 提供"key"查询字符串参数作为基本实现。