0

我在运行以下代码时收到此错误消息:

错误信息:

Compilation Error

Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately. 

Compiler Error Message: CS1729: 'EmailReader.Pop3Client' does not contain a constructor that takes 0 arguments

Source Error:
Line 148:        private static object @__fileDependencies; 
Line 149:  
Line 150:        [System.Diagnostics.DebuggerNonUserCodeAttribute()] 
Line 151:        public pop3client_aspx() { 
Line 152:            string[] dependencies;

Home.aspx.cs 代码:

protected void Button1_Click(object sender, EventArgs e)
{
    Session["email"] = txt_email.Text;
    Session["pwd"] = txt_password.Text;
    Response.Redirect("Pop3Client.aspx");
} 

当我单步执行代码时,没有执行 Pop3Client.aspx.cs page_load 事件中的断点。任何想法如何解决这个问题?

Pop3Client.aspx.cs

protected void Page_Load(object sender, EventArgs e)
{

    int page = 1;
    if (Request.QueryString["page"] == null)
    {
        Response.Redirect("Pop3Client.aspx?page=1");
        Response.Flush();
        Response.End();
    }
    else
        page = Convert.ToInt32(Request.QueryString["page"]);
    try
    {
        Email = Session["email"].ToString();
        Password = Session["pwd"].ToString();
    }
    catch (Exception ex)
    { 
        Response.Redirect("Home.aspx"); 
    }

    int totalEmails;

    List<Email> emails;
    string emailAddress;
    using (EmailReader.Pop3Client client = new EmailReader.Pop3Client(Host, Port, Email, Password, true))
    {
        emailAddress = client.Email;
        client.Connect();
        totalEmails = client.GetEmailCount();
        emails = client.FetchEmailList(((page - 1) * NoOfEmailsPerPage) + 1, NoOfEmailsPerPage);
    }

    int totalPages;
    int mod = totalEmails % NoOfEmailsPerPage;
    if (mod == 0)
        totalPages = totalEmails / NoOfEmailsPerPage;
    else
        totalPages = ((totalEmails - mod) / NoOfEmailsPerPage) + 1;
    for (int i = 0; i < emails.Count; i++)
    {
        Email email = emails[i];
        int emailId = ((page - 1) * NoOfEmailsPerPage) + i + 1;
        TableCell noCell = new TableCell();
        noCell.CssClass = "emails-table-cell";
        noCell.Text = Convert.ToString(emailId);
        TableCell fromCell = new TableCell();
        fromCell.CssClass = "emails-table-cell";
        fromCell.Text = email.From;
        TableCell subjectCell = new TableCell();
        subjectCell.CssClass = "emails-table-cell";
        subjectCell.Style["width"] = "300px";
        subjectCell.Text = String.Format(DisplayEmailLink, emailId, email.Subject);
        TableCell dateCell = new TableCell();
        dateCell.CssClass = "emails-table-cell";
        if (email.UtcDateTime != DateTime.MinValue)
            dateCell.Text = email.UtcDateTime.ToString();
        TableRow emailRow = new TableRow();
        emailRow.Cells.Add(noCell);
        emailRow.Cells.Add(fromCell);
        emailRow.Cells.Add(subjectCell);
        emailRow.Cells.Add(dateCell);
        EmailsTable.Rows.AddAt(2 + i, emailRow);
    }
    if (totalPages > 1)
    {
        if (page > 1)
            PreviousPageLiteral.Text = String.Format(SelfLink, page - 1, "Previous Page");
        if (page > 0 && page < totalPages)
            NextPageLiteral.Text = String.Format(SelfLink, page + 1, "Next Page");
    }
    EmailFromLiteral.Text = Convert.ToString(((page - 1) * NoOfEmailsPerPage) + 1);
    EmailToLiteral.Text = Convert.ToString(page * NoOfEmailsPerPage);
    EmailTotalLiteral.Text = Convert.ToString(totalEmails);
    EmailLiteral.Text = emailAddress;
}
4

2 回答 2

1

Pop3Client您似乎已经向您的代码隐藏类添加了一个带有参数的构造函数。这意味着您的类不再包含无参数构造函数。ASP.NET 要求存在这样的构造函数,以便在首次加载页面时对其进行编译。

没有理由在 ASP.NET 页面的代码隐藏中包含构造函数,因此您可能应该将其删除,但添加无参数构造函数也应该可以。

于 2012-11-13T14:10:23.913 回答
0

该错误表明您在某处拥有new EmailReader.Pop3Client(). 您显示的代码没有该错误。

所以有问题的代码必须在其他地方。

于 2012-11-13T14:05:38.987 回答