0

如何进行如下路由配置?

我目前的网址是: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 }
        );
4

3 回答 3

1

您可以使用Attribute Routing. 首先,您必须通过在您的MapRoutein顶部添加以下代码来启用它RouteConfig

routes.MapMvcAttributeRoutes(); //Enables Attribute Routing

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

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

要深入Routing了解,您可以点击此链接

祝你好运。

于 2020-02-08T18:45:01.357 回答
0

如果你想用 Category Title 参数化一个路由,你可以像这样使用 Attribute Routing

[Route("~/{categoryTitle}")]
public ActionResult ByCategory(string categoryTitle)
...
于 2020-02-08T18:44:52.617 回答
0

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

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


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

于 2020-02-18T09:51:39.853 回答