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

发布于 2024-10-09 19:48:02 字数 516 浏览 1 评论 0原文

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

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

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

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

In my application I have the requirement to check if the user has paid the subscription and if not, redirect him to a renew service page.

I have then created a custom attribute class that does the check and if the user has not paid the subscription change the View. Here is the code

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

Is this the right approach to follow? Also, how can I create a new model and bind it to the strong-typed view "Cart"?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

彻夜缠绵 2024-10-16 19:48:02

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

1) Yeah, why not?

2) You can set the view model using something like the following:

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);
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文