在我的申请中,我要求检查用户是否已支付订阅费用,如果没有,则将其重定向到续订服务页面。
然后我创建了一个自定义属性类来执行检查,如果用户没有付费订阅,则更改View。这是代码
public class CheckForActiveServiceAttribute : ActionFilterAttribute {
public override void OnActionExecuting( ActionExecutingContext filterContext ) {
if ( !checkForActiveService ) {
filterContext.Result = new ViewResult { ViewName = "Cart" };
}
base.OnActionExecuting( filterContext );
}
}
这是正确的方法吗?另外,如何创建新模型并将其绑定到强类型视图“Cart”?
答案 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);
}
}