简体   繁体   English

如何在不使用表单的情况下以C#在ASP.NET中创建消息表单

[英]How do I Make a message form in ASP.NET in C# without using a form

Ok this is what I have so far. 好的,这是我到目前为止所拥有的。 I dont know where to put my email address and its not thowing any errors. 我不知道在哪里放置我的电子邮件地址,并且不存在任何错误。 it keeps failling the message. 它不断传递消息。

my content.aspx page: 我的content.aspx页:

<%@ Page Title="Contact" Language="C#" MasterPageFile="~/Site.Master"  AutoEventWireup="true" CodeBehind="Contact.aspx.cs" Inherits="JeremiahTorresportfoliov1.Contact"%>


<asp:Content runat="server" ID="BodyContent" ContentPlaceHolderID="MainContent">

<hgroup class="title">
    <h2>How to get in touch</h2>
</hgroup>

<section class="contact">
    <header>
        <h3>Phone:</h3>
    </header>
    <p> 
        <span>863.307.1652</span>
    </p>    
</section>
<section class="contact">
    <header>
        <h3>Email:</h3>
    </header>
    <p>
        <span><a href="lostdestany2685@gmail.com">Jeremiah@Leftclique.com</a></span>
    </p>
</section>

<section class="contact">
    <header>
        <h3>Address:</h3>
    </header>
    <p>
        5337 N. Socrum Loop Rd. #208<br />
        Lakeland, FL 33809
    </p>

</section>


<%@ Register Src="~/MyUserControl.ascx" TagPrefix="uc1" TagName="MyUserControl" %>



<uc1:MyUserControl runat="server" id="MyUserControl" />
</asp:Content>

and this is my contact.aspx.cs: 这是我的contact.aspx.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Net.Mail;
using System.Text;
using System.ComponentModel;

namespace JeremiahTorresportfoliov1
{
public partial class Contact : Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
}
}

MyUserControl.aspx: MyUserControl.aspx:

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="MyUserControl.ascx.cs" Inherits="JeremiahTorresportfoliov1.MyUserControl" %>

<div class="focus" >
<label>
    I need...</label>
<asp:DropDownList ID="cboConsultationType" runat="server" CssClass="select sub web">
    <asp:ListItem Value="I Need A New Web Site">A completely new website</asp:ListItem>
    <asp:ListItem Value="Web Site Upgrade">My website upgraded</asp:ListItem>
    <asp:ListItem Value="Application Design">An application </asp:ListItem>
    <asp:ListItem Value="Other">Other</asp:ListItem>
</asp:DropDownList>
</div>
<ul>

    <asp:Label EnableViewState="false" ID="lblErrorMessage" runat="server"></asp:Label>

<li>
<asp:Label EnableViewState="false" ID="lblName" AssociatedControlID="txtName" runat="server"
        Text="Name"></asp:Label>
<asp:TextBox ID="txtName" runat="server" ValidationGroup="ContactValidation">    </asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidatorName" runat="server" ValidationGroup="ContactValidation"
        ControlToValidate="txtName" ErrorMessage="Name is required">* </asp:RequiredFieldValidator>
</li>
<li>
    <asp:Label ID="lblPhone" runat="server" AssociatedControlID="txtPhone" EnableViewState="false"
        Text="Phone"></asp:Label>
    <asp:TextBox ID="txtPhone" runat="server" ValidationGroup="ContactValidation">  </asp:TextBox>
    <asp:RequiredFieldValidator ID="RequiredFieldValidatorPhone" runat="server" ValidationGroup="ContactValidation"
        ControlToValidate="txtPhone" ErrorMessage="Phone is required">* </asp:RequiredFieldValidator>
</li>
<li>
    <asp:Label ID="lblEmail" runat="server" AssociatedControlID="txtEmail" EnableViewState="false"
        Text="Email"></asp:Label>
    <asp:TextBox ID="txtEmail" runat="server" ValidationGroup="ContactValidation">  </asp:TextBox>
    <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ValidationGroup="ContactValidation"
        ControlToValidate="txtEmail" ErrorMessage="Email is required">*</asp:RequiredFieldValidator>
    <asp:RegularExpressionValidator ID="RegularExpressionValidatorEmail" runat="server"
        ControlToValidate="txtEmail" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"
        ValidationGroup="ContactValidation" ErrorMessage="Email address is invalid">*</asp:RegularExpressionValidator>
</li>
<li>
    <asp:Label ID="lblMsg" runat="server" AssociatedControlID="txtMsg" EnableViewState="false"
        Text="How can we assist you?"></asp:Label>
    <asp:TextBox ID="txtMsg" runat="server" TextMode="MultiLine" Rows="5" Wrap="true"> </asp:TextBox>
</li>
<li>
    <asp:Button ID="btnSubmit" runat="server" EnableViewState="false" CssClass="submit"
        Text="Send" ValidationGroup="ContactValidation" OnClick="btnSubmit_Click" />
</li>
</ul>

MyUserControl.ascx.cs MyUserControl.ascx.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Net.Mail;
using System.Text;
using System.ComponentModel;

namespace JeremiahTorresportfoliov1{
public class MyUserControl : System.Web.UI.UserControl
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }

protected void btnSubmit_Click(object sender, EventArgs e)
{
bool bSent = false;
try
{
    //create the email and add the settings
    var email = new MailMessage();
    email.From = new MailAddress(FromEmail);
    email.To.Add(new MailAddress(FromEmail));
    email.Subject = Subject;
    email.IsBodyHtml = true;



    //send the email
    var smtpServer = new SmtpClient();
    smtpServer.Send(email);

    //mark as sent ok
    bSent = true;
}
catch (Exception ex)
{
    //send any errors back
    //add your own custom handling of errors;
}

//let the end user know if it was a success
ScriptManager.RegisterStartupScript(this, this.GetType(), "alert", "alert('" + (bSent  ? SuccessText : FailureText) + "');", true);
}

//properties    
public string FromEmail
{
get { return _fromEmail; }
set { _fromEmail = value; }
}
public string Subject
{
get { return _subject; }
set { _subject = value; }
}
public string SuccessText
{
get { return _successText; }
set { _successText = value; }
}
public string FailureText
{
get { return _failureText; }
set { _failureText = value; }
}

//fields
private string _fromEmail = "lostdestany@aol.com";
private string _subject = "Website Enquiry";
private string _successText = "Thank you for submitting your details we will be in touch shortly.";
private string _failureText = "There was a problem submitting your details please try again shortly.";

}


}

You can't inherit a form from a control, it should be from System.Web.UI.Page. 您不能从控件继承表单,而应从System.Web.UI.Page继承。 Add a usercontrol and move all markup and code to that control: 添加一个用户控件,并将所有标记和代码移至该控件:

MyUserControl.ascx: MyUserControl.ascx:

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="MyUserControl.ascx.cs" Inherits="JeremiahTorresportfoliov1.MyUserControl" %>

<div class="focus" >
    <label>
        I need...</label>
    <asp:DropDownList ID="cboConsultationType" runat="server" CssClass="select sub web">
        <asp:ListItem Value="I Need A New Web Site">A completely new website</asp:ListItem>
        <asp:ListItem Value="Web Site Upgrade">My website upgraded</asp:ListItem>
        <asp:ListItem Value="Application Design">An application </asp:ListItem>
        <asp:ListItem Value="Other">Other</asp:ListItem>
    </asp:DropDownList>
</div>
<ul>
    <li>
        <asp:Label EnableViewState="false" ID="lblErrorMessage" runat="server"></asp:Label>
    </li>
    <li>
        <asp:Label EnableViewState="false" ID="lblName" AssociatedControlID="txtName" runat="server"
            Text="Name"></asp:Label>
        <asp:TextBox ID="txtName" runat="server" ValidationGroup="ContactValidation"></asp:TextBox>
        <asp:RequiredFieldValidator ID="RequiredFieldValidatorName" runat="server" ValidationGroup="ContactValidation"
            ControlToValidate="txtName" ErrorMessage="Name is required">*</asp:RequiredFieldValidator>
    </li>
    <li>
        <asp:Label ID="lblPhone" runat="server" AssociatedControlID="txtPhone" EnableViewState="false"
            Text="Phone"></asp:Label>
        <asp:TextBox ID="txtPhone" runat="server" ValidationGroup="ContactValidation"></asp:TextBox>
        <asp:RequiredFieldValidator ID="RequiredFieldValidatorPhone" runat="server" ValidationGroup="ContactValidation"
            ControlToValidate="txtPhone" ErrorMessage="Phone is required">*</asp:RequiredFieldValidator>
    </li>
    <li>
        <asp:Label ID="lblEmail" runat="server" AssociatedControlID="txtEmail" EnableViewState="false"
            Text="Email"></asp:Label>
        <asp:TextBox ID="txtEmail" runat="server" ValidationGroup="ContactValidation"></asp:TextBox>
        <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ValidationGroup="ContactValidation"
            ControlToValidate="txtEmail" ErrorMessage="Email is required">*</asp:RequiredFieldValidator>
        <asp:RegularExpressionValidator ID="RegularExpressionValidatorEmail" runat="server"
            ControlToValidate="txtEmail" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"
            ValidationGroup="ContactValidation" ErrorMessage="Email address is invalid">*</asp:RegularExpressionValidator>
    </li>
    <li>
        <asp:Label ID="lblMsg" runat="server" AssociatedControlID="txtMsg" EnableViewState="false"
            Text="How can we assist you?"></asp:Label>
        <asp:TextBox ID="txtMsg" runat="server" TextMode="MultiLine" Rows="5" Wrap="true"></asp:TextBox>
    </li>
    <li>
        <asp:Button ID="btnSubmit" runat="server" EnableViewState="false" CssClass="submit"
            Text="Send" ValidationGroup="ContactValidation" OnClick="btnSubmit_Click" />
    </li>
</ul>

MyUserControl.ascx.cs: MyUserControl.ascx.cs:

namespace JeremiahTorresportfoliov1
    public partial class MyUserControl : System.Web.UI.UserControl
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

protected void btnSubmit_Click(object sender, EventArgs e)
{
    bool bSent = false;
    try
    {
        //create the email and add the settings
        var email = new MailMessage();
        email.From = new MailAddress(FromEmail);
        email.To.Add(new MailAddress(FromEmail));
        email.Subject = Subject;
        email.IsBodyHtml = true;

        //build the body
        var sBody = new StringBuilder();
        sBody.Append("<strong>Contact Details</strong><br /><br />");
        sBody.AppendFormat("Needs: {0}<br />", cboConsultationType.SelectedValue);
        sBody.AppendFormat("Name: {0}<br />", txtName.Text);
        sBody.AppendFormat("Email: {0}<br />", txtEmail.Text);
        sBody.AppendFormat("Number: {0}<br />", txtPhone.Text);
        sBody.AppendFormat("Comment: {0}<br />", txtMsg.Text);
        email.Body = sBody.ToString();

        //send the email
        var smtpServer = new SmtpClient();
        smtpServer.Send(email);

        //mark as sent ok
        bSent = true;
    }
    catch (Exception ex)
    {
        //send any errors back
        //add your own custom handling of errors;
    }

    //let the end user know if it was a success
    ScriptManager.RegisterStartupScript(this, this.GetType(), "alert", "alert('" + (bSent ? SuccessText : FailureText) + "');", true);
}

//properties    
public string FromEmail
{
    get { return _fromEmail; }
    set { _fromEmail = value; }
}
public string Subject
{
    get { return _subject; }
    set { _subject = value; }
}
public string SuccessText
{
    get { return _successText; }
    set { _successText = value; }
}
public string FailureText
{
    get { return _failureText; }
    set { _failureText = value; }
}

//fields
private string _fromEmail = "info@example.com.au";
private string _subject = "Website Enquiry";
private string _successText = "Thank you for submitting your details we will be in touch shortly.";
private string _failureText = "There was a problem submitting your details please try again shortly.";

}


    }
}

Add this control to your page and fix code. 将此控件添加到您的页面并修复代码。

Contact.aspx: Contact.aspx:

<%@ Page Title="Contact" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Contact.aspx.cs" Inherits="JeremiahTorresportfoliov1.Contact" %>

<%@ Register Src="~/MyUserControl.ascx" TagPrefix="uc1" TagName="MyUserControl" %>


<asp:Content runat="server" ID="BodyContent" ContentPlaceHolderID="MainContent">
    <uc1:MyUserControl runat="server" id="MyUserControl" />
</asp:Content>

Contact.aspx.cs: Contact.aspx.cs:

namespace JeremiahTorresportfoliov1
{
    public partial class Contact : Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }
    }
}

UPDATE: I can see in your update you still have error. 更新:我可以在您的更新中看到您仍然有错误。 Change this in MyUserControl.ascx.cs: 在MyUserControl.ascx.cs中进行更改:

public class MyUserControl : System.Web.UI.UserControl

to this: 对此:

public partial class MyUserControl : System.Web.UI.UserControl

In Contact.aspx move reference to Myusercontrol to top of the page like this: 在Contact.aspx中,将对Myusercontrol的引用移至页面顶部,如下所示:

<%@ Page Title="Contact" Language="C#" MasterPageFile="~/Site.Master"  AutoEventWireup="true" CodeBehind="Contact.aspx.cs" Inherits="JeremiahTorresportfoliov1.Contact"%>

<%@ Register Src="~/MyUserControl.ascx" TagPrefix="uc1" TagName="MyUserControl" %>
<asp:Content runat="server" ID="BodyContent" ContentPlaceHolderID="MainContent">

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何将项目添加到列表中<T>从控制器中的表单输入而不使用视图? ASP.NET MVC C# - How can I add items to a list<T> from form input in a controller without using views? ASP.NET MVC C# 如何使用C#在ASP.NET中以编程方式提交表单 - How to programmatically submit a form in ASP.NET using C# 如何在ASP.Net Web表单中使用Roslyn执行C#代码? - How I can execute C# code using Roslyn in ASP.Net web form? 如何使用C#和ASP.NET重写URL而不访问IIS? - How do I rewrite URLs without access to IIS using C# and ASP.NET? 如何在不使用C#的库的情况下修改PDF并将其流回ASP.NET中的客户端? - How do I modify PDF without a library using C# and stream it back to client in ASP.NET? 如何使用 C# 使表单字段“DeviceId”唯一并在重复时抛出错误,ASP.NET MVC 和 Azure Cosmosdb? - How to make form field “ DeviceId” unique and throw error if repeated, ASP.NET MVC and Azure Cosmosdb using C#? 尝试使用C#asp.net Web表单使epaper动态化 - Trying to make epaper dynamic using C# asp.net web form 如何在页面重定向后发布消息以确认已发送的消息(C#/ ASP.Net) - How do I post a message to confirm a sent message after a page redirect (C#/ASP.Net) 使用 MongoDB C# (ASP.NET) 的登录表单 - Login form using MongoDB C# (ASP.NET) 如何在ASP.NET C#Web表单中进行不同的身份验证? - how to make different authentication in asp.net c# web form?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM