페이징을 수행해야하는 컨트롤러에 작업 메서드가 있습니다. 쿼리 번호에 페이지 번호와 페이지 크기 매개 변수를 전달합니다. 내가 가지고있는 문제는 내가 만드는 첫 번째 요청이 모든 후속 호출에 대한 매개 변수를 설정한다는 것입니다.ASP.NET MVC 작업 메서드 첫 번째 요청 후 쿼리 문자열의 매개 변수가 변경되지 않습니다.
routes.MapRoute("GetStuff", "Stuff/{key}", new {controller = "Stuff", action = "GetStuff"});
내 응용 프로그램을 디버깅 시작, 내가 URL/재료/My_Stuff로 이동하여 키 매개 변수가 정확하고, 페이지와 페이지 크기가 모두 null 인 :
public ActionResult GetStuff(string key, int? page, int? pageSize)
{
// do something magical
}
내 경로는 다음과 같습니다 기대했던대로. 두 번째 호출을 url/Stuff/My_Stuff? page = 2 & pageSize = 3으로하면, page와 pageSize의 값은 여전히 null입니다. 앱을 다시 시작하고 첫 번째 호출에 페이지 및 페이지 크기 매개 변수를 포함 시키면 모든 것이 정상적으로 작동하지만 후속 호출에서이 값을 변경하면 첫 번째 호출에서 값이 유지됩니다. 사실, 내 경로를 구성하는 주요 매개 변수조차도 내 URL을 변경하더라도 동일한 값을 유지합니다. 내가 뭘 놓치고 있니?
Windows Server 2003에서 IIS 6.1을 사용하고 있습니다. 확장 할 수없는 경로를 사용하고 있습니다. 또한 실제 코드는 VB.Net에 있지만 문제는 아니라고 생각합니다. 그러나 전체 공개의 경우 위 코드는 실제 코드가 아닌 실제 코드를 나타냅니다.
DI 컨테이너를 사용하고 있습니까? –
내 컨트롤러를 반환하는 데 하나를 사용하고 컨트롤러의 수명을 확인하고 일시적으로 설정하여 예상대로 작동했습니다. 나는 그 행동을 기대하지 않았을 것이다. 감사. 평판을 원하면 질문에 답하면 대답을 수락합니다. 특히 컨트롤러를 재사용 할 때이 동작이 나타나는 이유를 알고 있다면. 공장에서 컨트롤러를 가져온 후에 메서드 호출과 매개 변수 매핑이 일어날 것으로 예상됩니다. 나는 이것을 더 조사해야 할 것이다. 감사. – NerdFury
감사합니다, 담당자가 아프지 않아 :) –