0

以下は、単一の.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");」と入力します。そしてそれを1日と呼びましたが、C#の方法はもう少し複雑なようです。

私はどんな入力にも感謝します!

4

1 に答える 1

3

PHPの方法で.NETを使用しようとしていますが、最終的には問題が発生します。ASP.NETでは、クラスからすべてのクラスを継承するわけではありません(おそらく継承すべきではありません)Page。これは通常、実装している特定のWebページのコードビハインドにのみ使用されます。WebFormsでは、ページメソッドを呼び出すのではなく、などもControls使用します。さらに、ページ内のオブジェクトとオブジェクトへのアクセス権がすでにあり、通常、独自のセッション処理を追加する必要はありません。LabelRepeaterSessionUser

始めたばかりであることを考えると、ASP.NETMVCを検討することをお勧めします。これは、Webへのプログラミングにとってはるかに優れたパラダイムです。

于 2012-12-23T19:44:19.233 に答える