gpt4 book ai didi

c# - 使用 Angular 时无法使用默认路径加载 aspnet.core 服务器路由

转载 作者:太空宇宙 更新时间:2023-11-03 14:54:05 25 4
gpt4 key购买 nike

我希望所有未被任何服务器端路由捕获的调用加载我的水疗中心。所以在我的startup.cs文件我有以下内容

// routes
app.UseMvc(routes =>
{
// default goes to Home, and angular will deal with client side routing
routes.MapRoute(
name: "default",
template: "{*url}",
defaults: new { controller = "home", action = "index" });
});

然后我有一个服务器页面,我想在不向路径添加“索引”一词的情况下加载它,因此当我转到 http://localhost:5000/serverRoute 时它应该加载索引 View 。但它总是试图加载我的水疗中心。但是,如果我将 URL 更改为 http://localhost:5000/serverRoute/index然后加载服务器页面。

我的 ASP.net 核心 Controller 看起来像这样

[Route("[controller]/[action]")]
[ApiExplorerSettings(IgnoreApi = true)]
public class ServerRouteController : Controller
{
/// <summary>
/// Load default index view
/// </summary>
/// <returns></returns>
public ViewResult Index()
{
return View();
}
}

我做错了什么?

最佳答案

路由模板中的 Controller 操作 token 不是可选的,这就是为什么它不出现在 URL 中时不匹配的原因。

[Route("[controller]")]
[ApiExplorerSettings(IgnoreApi = true)]
public class ServerRouteController : Controller {
/// <summary>
/// Load default index view
/// </summary>
/// <returns></returns>
[Route("")] //Match /ServerRoute
[Route("[action]")] //Match /ServerRoute/Index
public IActionResult Index() {
return View();
}
}

引用 Routing to Controller Actions in ASP.NET Core

关于c# - 使用 Angular 时无法使用默认路径加载 aspnet.core 服务器路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50498748/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com