私はこの人と同じ問題を抱えています:
名前 'controlname' は現在のコンテキストに存在しません
しかし、さまざまな効果があります。
基本的に、片側にこれらすべてのラベルとフォームが含まれている Web ページを作成しています。コード ビハインドでこれらを参照して、電子メールを生成し、管理者にメールで送信します。
ここの多くの人は、回答はデザイナー ファイルを削除するか、[Web アプリケーションに変換] をクリックすると述べています。デザイナー ファイルがなく、変換オプションもありません。もう 1 つは、.aspx 側の html 部分に「runat」を配置することでした。それはありませんが、次のようなランナトを持つマスターページを継承します
<asp:ContentPlaceHolder runat="server" ID="EntireBody">
この例では、すべての「XXX.Text」部分がエラーになり、このコンテキストには存在しないことが示されています。
私はVisual StudioとWebサイトの作成に少し慣れていません。どうすればいいですか?
public partial class SendEmail : System.Web.UI.Page
{
protected void Submit_Click(object sender, EventArgs e)
{
MailMessage mailMsg = new MailMessage();
mailMsg.From = new MailAddress(txtContactEmail.Text);
mailMsg.To.Add("admin@email.com");
mailMsg.IsBodyHtml = true;
mailMsg.Subject = txtContractName.Text + " : " + txtCompanyName.Text + " : Software Enhancement";
mailMsg.Body = "Contact Details" + "<b>Name:</b>" + txtCompanyName.Text + " <br/> <b>Email - address :</b>" + txtContactEmail.Text + "<br/> <b>Comments :</b>" + txtSoftwareVersion.Text;
SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587);
mailMsg.Priority = MailPriority.Normal;
smtp.Credentials = new System.Net.NetworkCredential("admin@email.com", "yourPassword");
smtp.Timeout = 25000;
smtp.EnableSsl = true;
smtp.Send(mailMsg);
ThankYou.Text = "Thank you. Your contact details and feed back has been submitted.";
}
}
.aspx 側のマークアップ
<%@ Page Title="Customer Support" Language="C#" MasterPageFile="~/members.master" AutoEventWireup="true" CodeFile="SoftwareEnhancement.aspx.cs" Inherits="support" %>