2010-08-12 3 views
1

저는 ASP.NET MVC에서 새로운 기능을 익히고 있습니다.ASP.NET MVC에서 양식간에 데이터 전달하기

현재 유일한 속성으로 IEnumeable 이벤트가있는 ViewModel을 반환합니다. 이 ViewModel은 표 형식으로 IEnumable 이벤트를 분리하는 UserControl에 StronglyTyped입니다. 이벤트 모델의 속성 중 하나는 DB에서로드 된 일부 XML을 포함하는 XElement입니다.

이제 별도의 페이지에서 XML을 볼 수 있도록 테이블 형식 데이터의 끝에 링크를 추가했습니다. 어떻게이 데이터를 다른 페이지로 전달하여 볼 수 있습니까?

답변

0

다른 사용하여 ASP.NET MVC (또는 HTTP 프로토콜을 따르는 다른 언어/프레임 워크)에 한 페이지에서 데이터를 가져 오는 두 가지 방법에는 기본적으로 :

  • 세션 다음을 저장하는 세션을 사용하여이 필요한 데이터를 가져 와서 다음 페이지에서 다시로드하십시오.
  • 필요한 데이터를 다시 서버에 게시하십시오. 이렇게하면 서버가이를 보관하고 다음 페이지에 표시 할 수 있습니다. 게시 된 데이터는 일반적으로 input 또는 textarea 요소에서 제공됩니다. input type="hidden"을 사용하는 경우 데이터를 나타내는 값을 지정할 수 있습니다. 이렇게하면, 원하는 곳에 도착할 때까지 앞뒤로 게시 할 수 있습니다.
1

이벤트 객체에 대한 일종의 ID가있는 요청을 서버에 다시 게시하고 수신 측에서 해당 ID와 관련된 XML을 다시 보내야합니다. 당신이 당신을 IEnumerable에서 이벤트 객체를 통해 반복하는 경우

, 당신은 같은 것을 할 수 있습니다 : 이제 EventsController에 액션을 만들

<%= Html.ActionLink("GetXml", "Events", new { id = currentEvent.Id }) %>; 

을과 같이 (당신이 하나를 가지고 주어진) :

public ActionResult GetXml(int id) 

및 ARVE는 조언 무엇 게다가보기

0

에 다시 전달하기 위해 XML을 검색, 당신은 또한 TempData을 고려할 수 있습니다. 당신이 응용 프로그램 당신을 위해 가져-후 리디렉션/앞으로 개념을 사용하는 경우

, 당신은 같은 것을 할 수있는 :

  1. GET을 - 초기 요청이 들어 오면, 서버는보기와 모델 데이터로 응답합니다. 사용자가 연결되는 항목을 선택합니다.
  2. POST - 사용자가 # 1에서 항목 중 하나를 선택하여 게시물을 실행합니다. 이 특정 항목은 TempData에 배치 된 저장소에서 가져온 다음 ...
  3. 리디렉션/전달 - 리디렉션은 TenpData에서 정보를 수집하고이를 새보기의 모델로 사용합니다.

여기 예를 들어 http://www.eworldui.net/blog/post/2008/05/08/ASPNET-MVC-Using-Post2c-Redirect2c-Get-Pattern.aspx

+0

그것은 그 TempData가 표준으로 asp.net 세션을 사용하여도 주목할 필요가있다. – UpTheCreek

관련 문제