在ASP.NET C#中实例化部分类:页面类型

时间:2012-12-23 19:38:30

标签: c# partial-classes

下面是我想要实现的部分类的一个例子,以便从单个.aspx页面中使用多个类(及其方法)。

login.aspx的:

<%@ Page Language="C#" Codefile="Web_Code/LogonService.cs" Inherits="Client.LogonService" %>
<!-- html here, also will be calling methods here via a form -->


Web_Code / SessionHandler.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace Client {

    public partial class SessionHandler : Page {

        //Constructor method here

        public string setSessionUser(string username) {
            return "this works, this is just a test";
        }

    }   
}


Web_Code / LoginService.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace Client {

    public partial class LoginService : Page {

        public void checkCredentials(object sender, EventArgs e) {

            //Check credentials here

            //If credentials are good, add the username to session

            /* PROBLEM HERE: VS CAN'T FIND TYPE NOR INSTANTIATE*/
            SessionHandler ses = new SessionHandler();
            ses.setSessionUser(username.Value);  

        }
    }
}   

问题在Web_Code / LogonService.cs中被注释 - 它无法实例化SessionHandler。 - 这是为什么?

我正在从PHP切换到C#,在PHP世界中,我只需要输入“require(”Web_Code / SessionHandler.php“);”并称它为一天,但C#方式似乎更多涉及。

我感谢任何意见!

1 个答案:

答案 0 :(得分:3)

您尝试以PHP方式使用.NET,最终会导致问题。在ASP.NET中,您不会(也可能不应该)继承Page类中的每个类。这通常仅用于您正在实现的特定网页的代码隐藏。在WebForms中,您还可以使用Controls,例如LabelRepeater等,而不是调用页面方法。此外,您已经可以访问页面中的Session对象和User对象,通常不需要添加自己的会话处理。

鉴于您刚刚开始,您可能希望查看ASP.NET MVC。对于网络编程来说,这是一个更好的范例。