2010-12-27 2 views
1

내 신청서에는 사용자가 가입비를 지불했는지 확인하고, 가입하지 않은 경우 갱신 서비스 페이지로 리디렉션해야한다는 요구 사항이 있습니다.글로벌 응용 프로그램 검사를 적용하는 데 필요한 사용자 지정 특성이 있습니까?

그런 다음 검사를 수행하는 사용자 지정 특성 클래스를 만들고 사용자가 구독료를 지불하지 않은 경우보기를 변경합니다. 코드는 다음과 같습니다

public class CheckForActiveServiceAttribute : ActionFilterAttribute { 
    public override void OnActionExecuting(ActionExecutingContext filterContext) { 
     if (!checkForActiveService) { 
      filterContext.Result = new ViewResult { ViewName = "Cart" }; 
     } 
     base.OnActionExecuting(filterContext); 
    } 
} 

따라야 할 올바른 방법입니까? 또한, 어떻게 새로운 모델을 생성하고 강력한 형식의 뷰 "장바구니"에 바인딩 할 수 있습니까?

답변

1

1) 그래, 왜 안 되니?

public class CheckForActiveServiceAttribute : ActionFilterAttribute 
{ 
    public override void OnActionExecuting(ActionExecutingContext filterContext) 
    { 
     if (!false) 
     { 
      filterContext.Result = new ViewResult { ViewName = "Cart" }; 
      ((ViewResultBase)filterContext.Result).ViewData.Model = new MyModel(); 
     } 
     base.OnActionExecuting(filterContext); 
    } 
} 
:

2) 다음과 같은 것을 사용하여 뷰 모델을 설정할 수 있습니다

관련 문제