Я хотел бы получить следующие URL (ы) .. и я не уверен, как я должен делать следующее:
1) Маршрут зарегистрирован в global.asax
2) Метод управления
Urls / Маршруты
- http://www.mysite.com/
- http://www.mysite.com/?page=2
- http://www.mysite.com/?tags=fooBar
- http://www.mysite.com/?page=2&tags=fooBar
Обратите внимание - я не хочу иметь http://www.mysite.com/{page}/{tags}/
и т. Д., Если это различие имеет смысл. Я также понимаю о маршрутах по умолчанию, но я не уверен, как настроить их так, чтобы они делали то, что мне нужно.
Наконец, я также знаю, как использовать Html.ActionLink (..), так что меня это не беспокоит.
есть предложения?
Модульное тестирование
У меня также сложилось впечатление, что я могу провести модульное тестирование, например:
(используя MvcFakes) ...
// Arrange.
var routes = new RouteCollection();
MvcApplication.RegisterRoutes(routes);
// Act.
context = new FakeHttpContext("~/?page=2&tags=fooBar");
routeData = routes.GetRouteData(context);
// Assert.
Assert.AreEqual("Home", routeData.Values["controller"]);
Assert.AreEqual("Index", routeData.Values["action"]);
Assert.AreEqual(2, routeData.Values["page"]);
Assert.AreEqual("fooBar", routeData.Values["tags"]);
Обновление 1
Я надеюсь запустить все эти действия Index на стандартном HomeController, если это поможет. (на самом деле я переименовал свой HomeController в PostController, но это не очень важно / не должно влиять на проблему).