下面是我想要实现的部分类的一个例子,以便从单个.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#方式似乎更多涉及。
我感谢任何意见!
答案 0 :(得分:3)
您尝试以PHP方式使用.NET,最终会导致问题。在ASP.NET中,您不会(也可能不应该)继承Page
类中的每个类。这通常仅用于您正在实现的特定网页的代码隐藏。在WebForms中,您还可以使用Controls
,例如Label
,Repeater
等,而不是调用页面方法。此外,您已经可以访问页面中的Session
对象和User
对象,通常不需要添加自己的会话处理。
鉴于您刚刚开始,您可能希望查看ASP.NET MVC。对于网络编程来说,这是一个更好的范例。