2012-02-01 4 views
10

방금 ​​MVC4를 사용하기 시작했으며, 내가 본 첫 번째 동작 방법에는 새로운 것이 있습니다. 나는 인터넷을 체크 아웃하고 이것에 대해 아무것도 찾을 수 없습니다 :MVC4 - ContextDependentView - 의미는 무엇입니까?

public ActionResult LogOn() 
     { 
      return ContextDependentView(); 
     } 

사람이 ContextDependentView가 무엇인지 알고 있나요을?

나에게 새로운 무엇인가.

답변

11

로그인 및 등록 작업에 View 또는 PartialView 작업 결과를 사용하는 것이 목적입니다. 이 규칙에 의해 이루어집니다 MVC에서 다른 것들처럼

private ActionResult ContextDependentView() 
    { 
     string actionName = ControllerContext.RouteData.GetRequiredString("action"); 
     if (Request.QueryString["content"] != null) 
     { 
      ViewBag.FormAction = "Json" + actionName; 
      return PartialView(); 
     } 
     else 
     { 
      ViewBag.FormAction = actionName; 
      return View(); 
     } 
    } 

는 ... 여기 협약은 Request.QueryString?content=xxxx 포함되어있는 경우,이 작업 이름에 "JSON"를 앞에 추가, 인 ViewBag 속성을 거즈와 부분을 반환 뷰의 버전. 예를 들면 다음과 같습니다.

/Account/Login?content=test에 대한 요청은 ViewBag.FormAction = "JsonLogin";으로 해결 된 다음 부분을 반환합니다. 그 형태의 작업을 설명 대단히 ViewBag.FormAction = "Login";

+0

덕분에 유지되도록

/Account/Login에 대한 요청에는 콘텐츠 쿼리 문자열이 없습니다. –

+1

이 컨트롤러에서 이것이 실제로 개인적인 방법이라고 생각하십니까? 어떤 컨트롤러에서도 사용할 수있는 것처럼 보입니다. 이 방법을 직접 사용하고 비공개로 두 었나요? –

+0

솔직히 말하면, MVC4로만 게임을 시작했습니다. 이 방법은 제작에 들어가기 전에 바뀔 것입니다. 만약 당신이 그것을 원한다면 당신 자신의'BaseController : Controller' 클래스로 옮길 수도 있습니다. 기본 컨트롤러에 개인 또는 정적으로 넣는 트릭은 부분 시나리오와 전체 시나리오 모두에 대한보기를 만들어야하는 것 같습니다. 나는 그대로두고 그 기능을 실험하고 RC (Release Candidate)에서 어디로 가는지 봅니다. –