1

prequal.aspx.cs のコードビハインドを含む、prequal.aspx という asp.net ページがあります。できます。このページの各クライアント コードをそれぞれの部分ファイルに分けたいと思います (後で誤って間違ったコードを変更する可能性を減らすためです)。両方の .cs ファイルは次のように始まります。

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;

    public partial class prequal : System.Web.UI.Page
    {

クライアント コードの 1 つを独自のファイルに入れると、正常にコンパイルされますが、ページを表示しようとすると次のエラーが発生します。

CS1061: 'ASP.prequal_aspx' には 'lnkLanguage_Click' の定義が含まれておらず、タイプ 'ASP.prequal_aspx' の最初の引数を受け入れる拡張メソッド 'lnkLanguage_Click' が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか?)

prequal.aspx には次のようなものがあります。

<asp:LinkButton id="lnkLanguage" onclick="lnkLanguage_Click" runat="server" CausesValidation="False">English / En Español</asp:LinkButton>

prequal.aspx.cs には次のようなものがあります。

    protected void lnkLanguage_Click()
    {
        // alternate preferred language
        if (Session["lang"].ToString() == "spa")
        {
            Session["lang"] = "eng";
        }
        else
        {
            Session["lang"] = "spa";
        }
        populateQuestions();
    }

populateQuestions() は、prequal-client1.aspx.cs のコードを呼び出す prequal.aspx.cs の他のコードを呼び出します。コードは分割する前に機能するので、別の部分クラス ファイルを間違って作成しようとしていますか? それとも、私がまだ気付いていない別の問題ですか?

4

1 に答える 1

1

の署名lnkLanguageは次のようにする必要があると思います:

protected void lnkLanguage_Click(object sender, EventArgs e)
{
  //...
}
于 2012-12-20T18:11:45.067 に答える