MapRoute到Home控制器中的特定操作

时间:2018-04-06 20:07:54

标签: c# asp.net asp.net-core-mvc asp.net-core-routing

在我的家庭控制器中,我有两个视图,IndexAbout

enter image description here

我正在尝试将请求配置为example.com/about以点击About页面。

在我的Startup.cs文件中,我有以下MapRoute的

        app.UseMvc(routes =>
        {
            routes.MapRoute(
                name: "default",
                template: "{controller=Home}/{action=Index}/{id?}");

            routes.MapRoute(
              "Id",
              "{id}",
              new { controller = "Home", action = "About" });
        });

这允许将example.com/about的请求传递到About操作。我的问题是它还会在转发之后捕获所有其他请求。例如,对example.com/foobarr的请求也会触及About操作。

如何更改MapRoute以使example.com/about的请求到达About操作,但忽略其他任何操作。

1 个答案:

答案 0 :(得分:1)

最好配置控制器内的路由,指定方法以上的属性,例如:

 [HttpGet("Home/About")]

自定义属性用于about route的操作方法。在这种情况下,处理特定路线更容易。