C# Can';使用Angular时,无法使用默认路径获取要加载的aspnet.core服务器路由

C# Can';使用Angular时,无法使用默认路径获取要加载的aspnet.core服务器路由,c#,asp.net-core,asp.net-core-routing,C#,Asp.net Core,Asp.net Core Routing,我希望所有未被任何服务器端路由捕获的呼叫都能加载我的spa。因此,在我的startup.cs文件中,我有以下内容 // routes app.UseMvc(routes => { // default goes to Home, and angular will deal with client side routing routes.MapRoute( name: "default", template: "{*url}",

我希望所有未被任何服务器端路由捕获的呼叫都能加载我的spa。因此,在我的
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" });
});
然后,我有一个服务器页面,我想在不向路径中添加单词“index”的情况下加载该页面,因此当我转到
http://localhost:5000/serverRoute
但它总是尝试加载我的spa。但是,如果我将URL更改为
http://localhost:5000/serverRoute/index
然后加载服务器页面

我的ASP.net核心控制器看起来是这样的

[Route("[controller]/[action]")]
[ApiExplorerSettings(IgnoreApi = true)]
public class ServerRouteController : Controller
{
    /// <summary>
    /// Load default index view
    /// </summary>
    /// <returns></returns>
    public ViewResult Index()
    {
        return View();
    }
}
[路由(“[controller]/[action]”)
[ApiExplorerSettings(IgnoreApi=true)]
公共类ServerRouteController:控制器
{
/// 
///加载默认索引视图
/// 
/// 
公共视图结果索引()
{
返回视图();
}
}

我做错了什么?

路由模板中的控制器操作令牌不是可选的,这就是为什么在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();
    }
}
[路由(“[控制器]”)]
[ApiExplorerSettings(IgnoreApi=true)]
公共类ServerRouteController:控制器{
/// 
///加载默认索引视图
/// 
/// 
[路由(“”)//匹配/ServerRoute
[路由(“[操作]”)//匹配/ServerRoute/Index
公共IActionResult索引(){
返回视图();
}
}
参考

[路线(“[控制器]/[动作]”)]
?为什么控制器有一个动作参数?