首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我的代码能变成一个吗?

我的代码能变成一个吗?
EN

Code Review用户
提问于 2014-04-27 04:13:35
回答 1查看 220关注 0票数 5

我有以下代码:

代码语言:javascript
复制
    protected Dictionary<NpInfoHelper, object> Informer;
    protected override void OnInit(EventArgs e)
    {
        if (Session.Keys.Count == 1)
        {
            Session.Abandon();
            Response.RedirectPermanent("~/Pages/Login?e=true", true);
        }
        else
        {
            Informer = (Dictionary<NpInfoHelper, object>)Session["Informer"];
        }
        base.OnInit(e);
    }

在每个后端.cs文件的.aspx文件中。

我觉得这是重复的。请注意,我将在每个Informer文件中使用.aspx.cs

以上代码重复了19次。我能做一个吗?

EN

回答 1

Code Review用户

回答已采纳

发布于 2014-04-27 05:22:03

根据注释,您可能需要的是一个抽象类MyAppPage

代码语言:javascript
复制
abstract class MyAppPage : Page {
    protected Dictionary<NpInfoHelper, object> Informer;
    protected override void OnInit(EventArgs e)
    {
        if (Session.Keys.Count == 1)
        {
            Session.Abandon();
            Response.Redirect("~/Pages/Login?e=true", true);
        }
        else
        {
            Informer = (Dictionary<NpInfoHelper, object>)Session["Informer"];
        }
        base.OnInit(e);
    }
}

然后您的其他页面将扩展MyAppPage而不是Page

最后,您将注意到我冒昧地将Response.RedirectPermanent更改为Response.Redirect。永久重定向返回301响应“永久移动”,并表示当前页面不再存在于此位置,并已移到其他位置。使用它来重定向没有登录的人可能会让爬虫们感到困惑。

票数 7
EN
页面原文内容由Code Review提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codereview.stackexchange.com/questions/48298

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档