2012-04-04 3 views
0

이 문제에 대한 조언이 필요합니다. 기본적으로, 나는 2 페이지 (단순함을 위해)가 있고, 두번째 페이지는 첫 번째 페이지에 완전히 종속되어있다.페이지간에 객체 전달 및 저장

그래서 메인 페이지가 검색 페이지라고 할 수 있으며 두 번째 페이지는 보기 페이지입니다.

이 사이트는 XML 요청을 처리하므로 궁극적 인 목표는 각 요청이 조금 느릴 때 XML 요청을 최소한으로 유지하는 것입니다. 나는 세션을 사용하는 것을 고려했다. 그러나 나는 과거에 몇 가지 문제를 겪었다. 사용자들 사이에 혼란스럽고 무작위로 IIS의 재활용 프로세스를 아주 작은 시간 프레임으로 변경함으로써 만 관리 할 수 ​​있었다. 그래서 나는 있는지 궁금하다. 다른 방법. TempData를 시도했지만 한 요청 후에 만료되므로보기 페이지의 페이지 새로 고침이 불가능 해 보입니다.

어쨌든보기 페이지에 필요한 속성이 5 개 있지만보기 페이지에서 XML 요청을하려면 2 개의 속성 만 있으면됩니다.

검색 페이지 포함 :

  • ID는
  • 이름,
  • 시,
  • 이메일,
  • 높이

보기 페이지가에서 다음을 필요로 XML 응답에

  • ID,
  • 이름,
  • 이메일

보기 페이지, 검색 페이지에서 모든 정보를 표시 플러스 모든 : 검색 페이지는 XML 요청를 완료 .

검색 페이지에있는 링크는 URL에 ID 만 가지고 있으므로 두 번째 페이지의 XML 요청에 이름과 전자 메일이 필요합니다. 세션없이 가능한지 확실하지 않습니까? 내가 무엇을 시도했다

은 다음과 같습니다

스토어 TempData의 검색 결과. 누군가가 '보기'링크 (<a href="/view/123456">View</a>)를 클릭 할 때 그런 식으로,보기 페이지가 너무 같은 검색 결과를로드 :

뷰 모델은 다음 XML을, viewPage에서 NameEmail를 잡는하여 페이지를 렌더링
var viewPage = SearchResults.Where(w => w.ID == id).FirstOrDefault(); 

요청하고 응답을 표시하며 기타 필수 세부 사항은 viewPage입니다.

tempdata에서 예상대로 작동합니다. 데이터는 첫 번째 요청에서만 지속되고 페이지를 새로 고침하면 사라집니다. 세션이 대안이지만, 다른 세션이 있습니까?

@using (Html.BeginForm("search", "somecontroller", FormMethod.Get)) 
{ 
    ... some input fields for your search criteria 
    <button type="submit">Search</button> 
} 

과 : 검색을 수행 할 컨트롤러 액션에 검색 페이지를 가리키는에서 <form> 태그처럼 더 표준 기술을 사용하지 않는 이유는 텍스트 :

+0

질문을 잠시 살펴보고 나는 그저 그런 식으로 일한 프로젝트를 기억했다. 비대칭 암호화 알고리즘으로 값 (전자 메일, 이름 등)을 암호화하고 QueryString 값으로 두어 문제를 분류했습니다. 또한, 'TempData'는 세션도 사용하고 있음을 명심하십시오. – tugberk

답변

0

을의 벽

(죄송합니다 내가 즐겨 찾기 결과 페이지에 사용자를 허용하는 양식에 GET 방식을 사용했습니다

public ActionResult Search(SearchModel model) 
{ 
    var results = .... 
    return View(results); 
} 

: 당신은 검색 컨트롤러 액션이있을 것이다 나이가되면 나중에 다시 돌아옵니다.