ASP.NET C#部分类在单独的文件中不能正常工作CS1061

时间:2012-12-20 18:07:55

标签: asp.net partial

我有一个名为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中的代码。代码在我拆分之前有效,所以我要不正确地创建单独的部分类文件?或者是我不知道的其他问题呢?

1 个答案:

答案 0 :(得分:1)

我认为lnkLanguage的签名必须是:

protected void lnkLanguage_Click(object sender, EventArgs e)
{
  //...
}