Mvc маршрутизация. Как я могу установить параметр по умолчанию в. net core 3.0? - PullRequest
0 голосов
/ 03 апреля 2020

Мой контроллер

public partial class GridController : Controller
{
      [Route("/grid/{name}")]
      public IActionResult Index(string name)
      {

      }
}

Маршрутизация настроена правильно, поскольку, если я посещаю /grid/something, я получаю http ok.

Но как я могу установить параметр по умолчанию в startup.cs?

Я пробовал следующее, но при загрузке страницы я получаю ошибку http 404

endpoints.MapControllerRoute(
                   "default",
                   "{controller=Grid}/{action=Index}/{name}");

Ответы [ 3 ]

0 голосов
/ 03 апреля 2020

В вашем шаблоне маршрута. Параметр name не является обязательным.

Итак, используйте {name?}.

0 голосов
/ 03 апреля 2020

Хорошо. Завершается обходным решением

endpoints.MapControllerRoute(
    "default",
    "{controller=Grid}/{action=Index}");

и добавлением дополнительной перегрузки действия.

public IActionResult Index()
{
    return Index("something");
}

это просто работает

[Route("/grid/{name}")]
public IActionResult Index(string name )
{
}
0 голосов
/ 03 апреля 2020

Используйте атрибут маршрутизации на уровне контроллера, чтобы он был применим ко всем методам действия под этим контроллером.

...