내 asp.net mvc 2 응용 프로그램에서 RedirectToAction을 통해 전달되는 매개 변수가 왜 손실되는 경우가 있습니까?내 asp.net mvc 2 응용 프로그램에서 RedirectToAction을 통해 전달되는 매개 변수가 왜 손실되는 경우가 있습니까?
이 말은 내가 당황 스럽습니다. 때로는 RedirectToAction을 사용하여 작동하지 않는 경우가 있습니다. 나는 어떤 운이나 이유도 발견하지 못했습니다.
return RedirectToAction("ExportReport",
new { FieldOrder = fieldOrder });
나는 또한이 변형 시도했다 : :
routes.MapRoute(
"ExportReport",
"{controller}.aspx/{action}/{FieldOrder}",
new { controller = "SearchAndExport", action = "ExportReport", FieldOrder = UrlParameter.Optional }
);
그리고 마지막으로, 프로토 타입 :
return RedirectToAction("ExportReport", "SearchAndExport",
new { FieldOrder = fieldOrder });
내가 내 global.asax.cs에서 다음 추가를 여기 예제 리디렉션 할 작업 :
public FileContentResult ExportReport(List<String> FieldOrder)
FieldOrder의 데이터로 인해 리디렉션 된 작업이 수행되지 않습니다. 왜? 나는이 일을 여러 번 해냈다는 것을 안다. 뭐라 구요?
EDIT 1
가 완벽하게 명확하게하려면, FieldOrder는 List<String>
이다. 사이트 영역을 사용하지 않습니다. 리디렉션 자체는 작동하지만 데이터는 메서드에 전달되지 않습니다. 디버그를 통해 전달되어야하는 데이터가 있음을 확인했습니다.
또한 TempData를 사용하지 않을 것입니다. 하나 이상의 액션이 다른 더 일반적인 액션으로 리디렉션되는 경우, 그것은 지저분 해집니다. 매개 변수를 통해 데이터를 전달하는 것이 더 깨끗합니다 (IMHO). 길을 잃지했다 TempData에서 FieldOrder
이 http://msdn.microsoft.com/en-us/library/system.web.mvc.tempdatadictionary.aspx
지역을 사용하고 있습니까? 리디렉션이 항상 올바르게 작동합니까? –
나는 어떤 분야도 사용하지 않는다. 리다이렉트는 리턴 RedirectToAction 라인에 넣은 값을 매개 변수로 전달하지 않는 것 외에도 올바르게 작동합니다. – jason