2012-11-13 48 views
0

当我运行下面的代码我正在此错误消息:asp.net代码显示编译器错误消息:CS1729:“EmailReader.Pop3Client”不包含一个构造函数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; 
} 
+0

您可以显示您的Pop3Client.aspx.cs的开始和Pop3Client.aspx页面的标题吗? – Blachshma

回答

0

的错误,说明你的地方有一个new EmailReader.Pop3Client()。您显示的代码没有该错误。

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

1

您似乎已将具有参数的构造函数添加到您的Pop3Client代码隐藏类中。这意味着你的类不再包含无参数的构造函数。 ASP.NET需要这样的构造函数才能存在,因为在第一次加载页面时编译页面。

没有理由在ASP.NET页面的代码隐藏中有一个构造函数,所以你应该把它拿出来,但是增加一个无参数的构造函数也应该可以工作。

+0

@Rawling ...我不确定你的意思。我在代码隐藏中看不到带有参数的构造函数。 – DotNetRookie

+0

嗯......无参数构造函数标记为private? – Rawling

+1

@摇滚你摇滚!一年的问题,仍然挽救生命 – MrCarder

相关问题