I가 다음과 같은 동작 방식 :데이터 전달
[HttpGet]
public ActionResult DBLookupIndex(DBLookupDTO dto)
{
dto.Areas = _ph.GetProfiles();
return View(dto);
}
[HttpGet]
public ActionResult Search(DBLookupDTO dto)
{
dto.Orders = _oh.GetOrders(dto.OrderNumber, dto.ProductNumber, dto.DateRange, dto.SelectDeleted, dto.AreaId);
return RedirectToAction("DBLookupIndex", dto);
}
사용자 간단한 하나 이상의 웹 페이지의 텍스트 상자 이상에 유효한 정보를 입력하고, 가압하여 상기 제어부로 제출 제출하십시오. 그런 다음 검색 -action을 호출합니다. 디버깅을 통해 함수가 작동 함을 확인했습니다. 그것은해야 할 것을 찾지 만 전달되지 않고 DBLookupIndex -action으로 다시 향합니다.
제 질문은; 내가 뭘 잘못 했니? 비슷한 문제에 대한 솔루션으로 제공되는 위와 유사한 코드 예제를 보았습니다. 그러나 어떤 이유로 그것이 나를 위해 작동하지 않습니다.
는 편집 : 첫 번째 대답이 온 후
는 내가 어떤 정보가 누락 된 것을 깨달았다. 페이지가로드 될 때마다 새 프로파일/영역이 추가 된 경우보기에서 렌더링되는 드롭 다운을 업데이트해야합니다. 나는 면도날로 그 일을한다 :
그래서 나는 새로운 행동을하는 대신 RedirectToAction을 사용해야한다. 더 좋은 방법이 없다면? :)
어떤 도움을 주셔서 감사합니다!
이론적으로는 그렇게 될 것 같지만 문제점은 내 GetOrder() - 메서드가 List (주문 목록)을 반환한다는 것입니다. 나는 빨리 Google에 노력했지만 그 문제에 대한 해결책을 찾지 못했습니다 (적어도 현재 프로그래밍 기술 수준에서 이해할 수있는 것은 없습니다). 어쩌면 당신은 제안이 있을까요? btw를 도와 주셔서 감사합니다! –
당신은 객체를 직접 저장할 수 있어야합니다. 그리고 나서 그것을 캐스팅하십시오 (업데이트 된 답변 참조). 양자 택일로 serialise/deserialise 제안으로 JSON에서/deserialise 수 있습니다 여기에 (http://stackoverflow.com/questions/34638823/store-complex-object-in-tempdata-in-mvc-6) –
고마워 도움! ... 링크에 감사드립니다. 전에 제대로 사용하는 방법을 몰랐기 때문에 나는 전에 TempData를 사용 해본 적이 없지만 어떻게 작동하는지 더 잘 이해하게되었습니다. 당신과 피터 모두 내 문제에 대한 견고한 (그리고 일하는) 해결책을 가지고 왔으므로 어느 것을 사용할 것인지 알아 내려고 노력할 것입니다. 도와 주셔서 감사합니다 :) –