Изменения в строке запроса в URL - PullRequest
0 голосов
/ 14 декабря 2018

У меня есть метод действия, который выглядит следующим образом

public ActionResult MethodName(int num)
{
  viewmodel model = GetDetails(num)

  return View(model);
}

маршрут конфигурации выглядит следующим образом

routes.MapRoute(
 name: "MethodName",
 url: "{ControllerName}/{MethodName}",
 defaults: new {controller = "controllerName", action="MethodName"}
);

Моя проблема заключается в том, что он дает URL-адрес www.mysite.com/controller/ Method? Message = 78545

Хотелось бы, чтобы оно было

www.mysite.com / controller / Method / 78545

Может кто угодноПожалуйста, помогите мне с этим?Как мне этого добиться?Я попытался внести изменения в конфигурацию маршрута без посторонней помощи.Нужно ли переписывать какие-либо URL-адреса или в конфиге маршрута будет небольшое исправление?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 14 декабря 2018

Если вы не хотите, чтобы ваши параметры приводили к строке запроса, вам необходимо добавить дополнительные параметры в ваш MapRoute.Затем вы загружаете параметр со значением, которое хотите передать в результат действия.

В приведенном ниже примере вы можете получить доступ к методу, вызвав его с помощью «controller / action / op1» или «controller / action /»op1 / op2 ", вы поняли.(если op1 равен значению 1, URL будет выглядеть как 'controller / action / 1', то же самое для других параметров)

[Добавить дополнительные параметры]

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{op1}/{op2}/{op3}",
            defaults: new { controller = "Home", action = "Index", op1 = UrlParameter.Optional, op2 = UrlParameter.Optional, op3 = UrlParameter.Optional }
        );
0 голосов
/ 14 декабря 2018

Измените отображение маршрута, чтобы иметь необязательный параметр num:

routes.MapRoute(
    "MethodName",
    "{ControllerName}/{MethodName}/{num}",
    new { controller = "controllerName", action = "MethodName", num= UrlParameter.Optional }
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...