2012-03-30 7 views
1

이 질문에 대한 답변을 직접 찾을 수 없습니다. 난 내가 출력하고자 TempData에서 메시지의 값을 설정 작업 방법에서 너무게시 후 Ajax.BeginForm TempData가 출력되지 않습니다.

@using (Ajax.BeginForm("Action", "Controller", new AjaxOptions())){ 
    //Stuff 
    <div id="aaaa"> @TempData["Key"] </div> 
} 

처럼 내보기에 Ajax.BeginForm 있습니다.

TempData["Key"] = "Value"; 
return View("View"); 

디버깅 할 때 값이 TempData에 성공적으로 추가되는 것을 볼 수 있습니다. 뷰를 다시 렌더링하기 시작할 때 여전히 값이 있음을 알 수 있습니다. 그러나 설명 할 수없는 이유로

<div id="aaaa"> </div> 

출력 할 때 값이 출력되지 않는 이유는 무엇입니까? 같은

+0

주입되도록 당신이 당신의 AjaxOptions에 UpdateTargetId을 지정했는지 확인 전화를하는 것은 표시된 값입니다 너무보기에 디버그 모드에서? – Yasser

+0

보기에 중단 점을 넣을 때 값이 있는지 묻는 중입니까? 네, 제가 질문에서 말했듯이 말입니다. 뷰를 렌더링 할 때 값을 가지며 값을 출력하기 위해 중단 점에 도달하지만 빈 문자열을 출력합니다. – quitstalin

답변

0

당신은 완전히 동일하지 않은 TempData이 아닌을 ViewData를 사용하는 것을 ViewData와 ViewBag 및 모델 특성에 간다. 또한 Ajax.BeginForm을 사용하여이 컨트롤러 동작을 호출한다고 언급했습니다. 이 때문에 AJAX를이 결과 부분은 DOM 여기

에 어딘가에 몇 가지 관련 링크 http://davidhayden.com/blog/dave/archive/2009/05/19/ASPNETMVCAjaxBeginForm.aspx

ViewData not shown in Ajax.BeginForm

+0

질문에서 말했듯이 ViewData와 ViewBag에서도 마찬가지입니다. 이것은 부분보기가 아닙니다. UpdateTargetID는 전체 뷰를 뷰에 주입하기 때문에 설정할 수 없습니다. 나는 그 옵션으로 주위를 어지럽 혀서 문제를 수정하지 않기 때문에 알 수 있습니다. – quitstalin

+0

실제로 문제가 발견되었습니다. MVC 3은 기본적으로 web.config에 를 추가합니다. Atleast 이것은 이것을 시도 할 때 내가 발견 한 것입니다. 제거하면 작동합니다! – Yasser

+0

제거하면 자바 스크립트 오류가 많이 발생합니다. – quitstalin

관련 문제