我是新来的.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) { }
}
}
}
这有助于识别控件,但不会与编译器的原因正在尝试使用旧文件名作为后面的代码。 – wootscootinboogie 2013-04-05 14:14:10