Как я могу настроить маршрут в ASP. NET MVC? - PullRequest
0 голосов
/ 08 февраля 2020

Как мне настроить маршрут, как показано ниже?

Мой текущий 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 }
        );

Ответы [ 3 ]

1 голос
/ 08 февраля 2020

Вы можете использовать Attribute Routing. чтобы сделать это сначала, вы должны включить его, добавив верхнюю часть кода вашего MapRoute в RouteConfig:

routes.MapMvcAttributeRoutes(); //Enables Attribute Routing

, затем вы можете добавить Attribute Routing в верхней части ваших классов и методов:

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

для глубокого погружения в Routing, вы можете перейти по этой ссылке .

удачи.

0 голосов
/ 18 февраля 2020

Спасибо за ваши предложения. Я добавил следующий код в routeconfig. Я использовал <a href="/question"> </a> на странице просмотра для go для соответствующего контроллера

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


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

0 голосов
/ 08 февраля 2020

Если вы хотите параметризовать маршрут с заголовком категории, вы можете использовать атрибутную маршрутизацию, например, так:

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