1

我有一个名为 prequal.aspx 的 asp.net 页面,代码隐藏为 prequal.aspx.cs。有用。我想将此页面中的每个客户端代码分离到它们自己的部分文件中(以减少以后错误修改错误的机会。)两个 .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
    {

当我将其中一个客户端代码放入其自己的文件中时,它可以正常编译,但是当我尝试查看页面时出现以下错误:

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.aspx.cs 中的其他代码,后者调用 prequal-client1.aspx.cs 中的代码。代码在我拆分之前有效,所以我会错误地创建单独的部分类文件吗?还是我还不知道的其他问题?

4

1 回答 1

1

我相信签名lnkLanguage必须是:

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