URL-маршрутизация в MVC 3 - PullRequest
2 голосов
/ 23 мая 2011

мой текущий URL выглядит примерно так => http://localhost:4330/Restaurants/?Location=Manchester&Cuisine=0&NetProfit=0&Turnover=0&MaxPrice=120000&SortPriceBy=Low&Page=0

я хочу сделать что-то вроде этого => http://localhost:4330/Restaurants/Manchester/?Cuisine=Chinese&MaxPrice=120000

Где строка запроса Param, которая не имеет значений (0), не будет включена в URL строки запроса Возможно ли это?

Ответы [ 2 ]

5 голосов
/ 23 мая 2011

ОБНОВЛЕНО

stringДобавить это в маршруты Global.asax

            routes.MapRoute(
                "Name of route", // Route name
                "Restaurants/{cityid}/", // URL with parameters
                new { controller = "Restaurants", action = "Index" } // Parameter defaults
            );

Это контроллер:

public ActionResult Index(string city, int cuisine = 0, int ChineseMaxPrice=0)
{
  Return View();
}

Как и встроенная кухня = 0 - это значение по умолчанию для параметра, если этот параметр не задан в строке запроса

string city - параметр, который должен быть в строке (не обязательно)

1 голос
/ 23 мая 2011

Попробуйте добавить и добавить соответствующий маршрут:

routes.MapRoute(
    "Restaurants",
    "Restaurants/{city}",
    new { controller = "Restaurants", action = "Index", city = UrlParameter.Optional }
);

, который будет соответствовать действию Index на контроллере Restaurants:

public ActionResult Index(string city) 
{
    ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...