Как маршрутизировать несколько параметров в MVC и C# - PullRequest
0 голосов
/ 05 мая 2020

У меня установлены маршруты по умолчанию MVC как:

routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );

Я хочу иметь следующие маршруты в моем контроллере поиска.

.../Search/Uk
.../Search/Uk/County/Buckinghamshire
.../Search/Uk/City/London
.../Search/Uk/Town/Ashford
.../Search/Uk/Postcode/AB-Aberdeen

У меня есть только одно представление под названием «Индекс». Насколько я понял маршрутизацию, я предположил, что должен был сделать что-то вроде этого:

public ActionResult Index(string country)

public ActionResult Index(string country, string searchType, string location)

Но нет сигары, никто не понимает, что я делаю неправильно, мне нужно добавить какую-то конфигурацию маршрутов ? Фактически реализуя это, я даже не могу загрузить страницу поиска

1 Ответ

1 голос
/ 05 мая 2020

Вы можете использовать маршрутизацию на основе атрибутов, где вы можете передавать параметры в самом маршруте.

например,

//I hope you have already enabled attribute routing and search controller with RoutePrefix as "search"

[Route("{country}")]
public ActionResult Index(string country)
{
  //Your business logic
}

[Route("{country}/{searchType}/{location}")]
public ActionResult Index(string country, string searchType, string location)
{
  //Your business logic
}

Включение маршрутизации на основе атрибутов: MSND

...