如何在 ASP.NET MVC 中进行路由配置?

How can I do route configuration in ASP.NET MVC?

如何进行如下路由配置?

我目前的url是:http://localhost:4815/Home/ByCategory/1

但我希望它是:http://localhost:4815/CategoryTitle

public ActionResult ByCategory(int? id)
{
    ...
}

routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "ByCategory", id = UrlParameter.Optional }
        );

如果你想用类别标题参数化路由,你可以像这样使用属性路由

[Route("~/{categoryTitle}")]
public ActionResult ByCategory(string categoryTitle)
...

您可以使用 Attribute Routing。首先要执行此操作,您必须通过以下方式启用它 在 RouteConfig:

中的 MapRoute 顶部添加以下代码
routes.MapMvcAttributeRoutes(); //Enables Attribute Routing

然后您可以在 类 和方法顶部添加 Attribute Routing 和方法:

 [Route("CategoryTitle")]
 public ActionResult ByCategory(int? id)
        {
           ...
        }

要深入了解 Routing,您可以关注此 link

祝你好运。

感谢您的建议。我已将以下代码添加到 routeconfig。我在视图页面上使用了<a href="/question"> </a>去相关的controller

public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");


            routes.MapRoute(
               name: "AddQuestion",
               url: "AddQuestion",
               defaults: new { controller = "Question", action = "Create" }
           );