2013-04-05 94 views
0

我是新来的.NET框架,正在寻找一个简单的联系表单,应该提交一个电子邮件,当一个按钮被点击,并有问题。源文件'FilePathHere'无法打开未指定的错误.NET 4.0

首先,我开始了一个新项目(使用母版页,如果有问题的话),并将default.aspx的名称更改为SendMail.aspx。然后,我将代码复制并粘贴到我创建的项目中。

我收到多个错误和警告标记SendMail告诉我,例如'Element' Button is not a known element. This can occur if there is a compilation error in the web site for the web.config file is missing。 web.config文件不会丢失。但是,我对这个页面上的每个asp控件都会收到警告

我也遇到了一个编译器错误,它告诉我源代码文件无法打开。编译器然后列出名称为Default.aspx.cs的文件路径。这是我在Visual Studio中更改的文件的名称,但编译器仍在尝试读取该文件名。

这里发生了什么事情,所以我可以在将来解决这些问题?

标记:

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" 
    CodeBehind="SendMail.aspx.cs" Inherits="SmtpExample._Default" %> 
<asp:Content runat="server" ContentPlaceHolderID="HeadContent"> 
<asp:Panel ID="Panel1" runat="server" DefaultButton="btnSubmit"> 
    <p> 
     Please Fill the Following to Send Mail.</p> 
    <p> 
     Your name: 
     <asp:RequiredFieldValidator ID="RequiredFieldValidator11" runat="server" ErrorMessage="*" 
      ControlToValidate="YourName" ValidationGroup="save" /><br /> 
     <asp:TextBox ID="YourName" runat="server" Width="250px" /><br /> 
     Your email address: 
     <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="*" 
      ControlToValidate="YourEmail" ValidationGroup="save" /><br /> 
     <asp:TextBox ID="YourEmail" runat="server" Width="250px" /> 
     <asp:RegularExpressionValidator runat="server" ID="RegularExpressionValidator23" 
      SetFocusOnError="true" Text="Example: [email protected]" ControlToValidate="YourEmail" 
      ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" Display="Dynamic" 
      ValidationGroup="save" /><br /> 
     Subject: 
     <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ErrorMessage="*" 
      ControlToValidate="YourSubject" ValidationGroup="save" /><br /> 
     <asp:TextBox ID="YourSubject" runat="server" Width="400px" /><br /> 
     Your Question: 
     <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ErrorMessage="*" 
      ControlToValidate="Comments" ValidationGroup="save" /><br /> 
     <asp:TextBox ID="Comments" runat="server" 
       TextMode="MultiLine" Rows="10" Width="400px" /> 
    </p> 
    <p> 
     <asp:Button ID="btnSubmit" runat="server" Text="Send" 
        OnClick="Button1_Click" ValidationGroup="save" /> 
    </p> 
</asp:Panel> 
<p> 
    <asp:Label ID="DisplayMessage" runat="server" Visible="false" /> 
</p> 
</asp:Content> 
<asp:Content ID="Content1" runat="server" contentplaceholderid="MainContent"> 
</asp:Content> 

后面的代码:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 


namespace SmtpExample 
{ 
    public partial class _SendMail : System.Web.UI.Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 

     } 
     protected void SendMail() 
     { 
      // Gmail Address from where you send the mail 
      var fromAddress = "[email protected]"; 
      // any address where the email will be sending 
      var toAddress = YourEmail.Text.ToString(); 
      //Password of your gmail address 
      const string fromPassword = "Password"; 
      // Passing the values and make a email formate to display 
      string subject = YourSubject.Text.ToString(); 
      string body = "From: " + YourName.Text + "\n"; 
      body += "Email: " + YourEmail.Text + "\n"; 
      body += "Subject: " + YourSubject.Text + "\n"; 
      body += "Question: \n" + Comments.Text + "\n"; 
      // smtp settings 
      var smtp = new System.Net.Mail.SmtpClient(); 
      { 
       smtp.Host = "smtp.gmail.com"; 
       smtp.Port = 587; 
       smtp.EnableSsl = true; 
       smtp.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network; 
       smtp.Credentials = new NetworkCredential(fromAddress, fromPassword); 
       smtp.Timeout = 20000; 
      } 
      // Passing values to smtp object 
      smtp.Send(fromAddress, toAddress, subject, body); 
     } 

     protected void Button1_Click(object sender, EventArgs e) 
     { 
      try 
      { 
       //here on button click what will done 
       SendMail(); 
       DisplayMessage.Text = "Your Comments after sending the mail"; 
       DisplayMessage.Visible = true; 
       YourSubject.Text = ""; 
       YourEmail.Text = ""; 
       YourName.Text = ""; 
       Comments.Text = ""; 
      } 
      catch (Exception) { } 
     } 
    } 
} 

回答

1

要放置元素ContentPlaceHolderID = “HeadContent” 它必须在contentplaceholderid = “搜索Maincontent”

更新

我看到你重命名default.aspx文件来发送SendMail.aspx将从部分类default.aspx.cs和default.aspx.design.cs throe错误。创建新页面SendMail.aspx并将您的代码复制到ContentPlaceHolderID =“HeadContent”,右键单击页面i解决方案资源管理器点击设置为开始页面

+0

这有助于识别控件,但不会与编译器的原因正在尝试使用旧文件名作为后面的代码。 – wootscootinboogie 2013-04-05 14:14:10

相关问题