简体   繁体   中英

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

I am getting this error message when I run the code below:

Error Message:

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 code:

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

When I step through the code, the breakpoint in Pop3Client.aspx.cs page_load event does not get executed. Any ideas how to resolve this ?

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;
}

You appear to have added a contructor with a parameter to your Pop3Client codebehind class. This means that your class no longer contains a parameterless constructor. ASP.NET requires such a constructor to exist, for when your page is compiled when it is first loaded.

There's no reason to have a constructor in an ASP.NET page's codebehind, so you should probably take it out, but adding a parameterless constructor should also work.

The error is stating that somewhere you have a new EmailReader.Pop3Client() . The code you have shown does not have that error.

So the offending code must somewhere else.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM