如何在 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" }
);
如何进行如下路由配置?
我目前的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" }
);