自定义属性是否适用于应用全局应用程序检查?

时间:2010-12-27 23:13:36

标签: asp.net asp.net-mvc asp.net-mvc-2

在我的申请中,我要求检查用户是否已支付订阅费用,如果没有,则将其重定向到续订服务页面。

然后我创建了一个自定义属性类来执行检查,如果用户没有付费订阅,则更改View。这是代码

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

这是正确的方法吗?另外,如何创建新模型并将其绑定到强类型视图“Cart”?

1 个答案:

答案 0 :(得分:1)

1)是的,为什么不呢?

2)您可以使用以下内容设置视图模型:

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);
    }
}