Маршрут Querystring в MVC2 - PullRequest
       0

Маршрут Querystring в MVC2

1 голос
/ 07 сентября 2010

Я пытаюсь создать маршрут к определенному контроллеру / действию, которое должно принимать необязательные параметры строки запроса.

URL-адреса, которые я хотел бы принять:

/Products/ProductsListJson
/Products/ProductsListJson?productTypeId=1
/Products/ProductsListJson?productTypeId=1&brandId=2
/Products/ProductsListJson?productTypeId=1&brandId=2&year=2010

У меня есть такое действие:

public JsonResult ProductsListJson(int productTypeId, int brandId, int year)

И такой маршрут:

routes.MapRoute(
    null, "Products/ProductsListJson",
    new { controller = "Products", action = "ProductsListJson", productTypeId = 0, brandId = 0, year = 0 }
);

Я предполагал, что действие "ProductsListJson" просто увидит URL строки запроса и отобразит их в соответствующие аргументы, однако этого не происходит.

Кто-нибудь знает, как этого можно достичь?

1 Ответ

2 голосов
/ 07 сентября 2010

Вам не нужно указывать их значения в маршруте, если эти параметры передаются в строке запроса:

routes.MapRoute(
    null, "Products/ProductsListJson",
    new { controller = "Products", action = "ProductsListJson" }
);

и ваше действие:

public ActionResult ProductsListJson(int? productTypeId, int? brandId, int? year)
{
    ...
}

но вам, вероятно, не нужен конкретный маршрут для этого, так как маршрут по умолчанию с этим справится просто:

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