У меня есть метод действия в контроллере, который должен выполнять пейджинг. Я передаю номер страницы и параметр размера страницы в строке запроса. Проблема, с которой я столкнулся, заключается в том, что первый мой запрос устанавливает параметры для всех последующих вызовов.
public ActionResult GetStuff(string key, int? page, int? pageSize)
{
// do something magical
}
Мой маршрут выглядит так:
routes.MapRoute("GetStuff", "Stuff/{key}", new {controller = "Stuff", action = "GetStuff"});
Когда я начинаю отлаживать свое приложение, я перехожу на url / Stuff / My_Stuff, и параметр ключа правильный, а размер страницы и страницы равны нулю, как я и ожидал. Если я сделаю второй вызов с url / Stuff / My_Stuff? Page = 2 & pageSize = 3, тогда значения page и sizeSize будут по-прежнему равны нулю. Если я перезапущу приложение и сделаю мой первый вызов включающим параметры page и pageizeize, все будет работать так, как я ожидал, но затем изменение этих значений при последующих вызовах сохранит значения из первого вызова. Фактически, даже ключевой параметр, который является частью моего маршрута, сохранит то же значение, даже если я изменю свой URL. Чего мне не хватает?
Я использую IIS 6.1 на Windows Server 2003. Я использую маршруты без расширений. Кроме того, фактический код находится в VB.Net, но я не думаю, что это должно иметь значение. Но для полного раскрытия приведенный выше код представляет собой только мой фактический код, а не фактический код.