1

ユーザーがフォームを送信して送信してメールで送信できるように、フォームに以下のコードがあります。2つのresponse.writeステートメントがあり、これらをラベル(lblSubmit)に書き込むように変更したいと思います。どんな助けでもいただければ幸いです。

<script runat="server">

    protected void Page_Load(object sender, EventArgs e)
    {


        if (IsPostBack)
        {



            SmtpClient sc = new SmtpClient("smtp.talktalk.net");
            StringBuilder sb = new StringBuilder();
            MailMessage msg = null;

            sb.Append("Email from: " + txtEmail.Text + "\n");
            sb.Append("Message   : " + txtQuestion.Text + "\n");

            try
            {
                msg = new MailMessage(txtEmail.Text,
                    "myemail@talktalk.net", "Message from Web Site",
                    sb.ToString());

                sc.Send(msg);




                Response.Write("Message sent!");

            }
            catch (Exception ex)
            {

                // something bad happened
                Response.Write("Something bad happened!");

            }
            finally
            {

                if (msg != null)
                {
                    msg.Dispose();
                }

            }

        }

    }







</script>
<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">



<div id="title"><p>Contact Us...</p></div>



<div id="titletext"><p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.</p></div>

<div id="contactform">



    <asp:Label ID="lblName" runat="server" Text="Name:"></asp:Label>
    &nbsp;
    <asp:TextBox ID="txtName" runat="server" Width="189px"></asp:TextBox>
    <br />
    <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" 
        ControlToValidate="txtName" ErrorMessage="Please enter your name" 
        ForeColor="Red" Display="Dynamic"></asp:RequiredFieldValidator>
    <br /><br />
    <asp:Label ID="lblEmail" runat="server" Text="Email:"></asp:Label>
    &nbsp;
    <asp:TextBox ID="txtEmail" runat="server" Width="189px"></asp:TextBox>
    <br />
    <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
        ControlToValidate="txtEmail" Display="Dynamic" ErrorMessage="Please enter an email address" 
        ForeColor="Red"></asp:RequiredFieldValidator>
    <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" 
        ControlToValidate="txtEmail" ErrorMessage="Please enter a valid Email address" 
        ForeColor="Red" 
        ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" 
        Display="Dynamic"></asp:RegularExpressionValidator>
    <br />
    <br />

    <asp:Label ID="lblPhone" runat="server" Text="Phone:"></asp:Label>
    &nbsp;
    <asp:TextBox ID="txtPhone" runat="server" Width="189px"></asp:TextBox>
    <br />
    <asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server" 
        ControlToValidate="txtPhone" 
        ErrorMessage="Please enter a contact telephone number" ForeColor="Red" 
        Display="Dynamic"></asp:RequiredFieldValidator>

    <br />

    <asp:Label ID="lblQuestion" runat="server" Text="Question:"></asp:Label>
    <asp:TextBox ID="txtQuestion" runat="server" Height="103px" TextMode="MultiLine" 
        Width="189px"></asp:TextBox>
    <br />
    <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" 
        ControlToValidate="txtQuestion" ErrorMessage="Please enter a message" 
        ForeColor="Red"></asp:RequiredFieldValidator>


    <asp:Label ID="lblSubmit" runat="server"></asp:Label>


<asp:Button ID="cmdSubmit" runat="server" Text="Submit" CssClass="cmdSubmit" 
        onclick="cmdSubmit_Click" PostBackUrl="~/Contact Us.aspx" />


</div>
</asp:Content>
4

3 に答える 3

7

Labelコントロールのテキストを設定するには、その.Textプロパティに値を設定するだけです。したがって、これの代わりに:

Response.Write("some string");

あなたはこれを持っているでしょう:

lblSomeLabel.Text = "some string";

ラベルコントロールを使用すると、ページ上の場所をプレースホルダーとして指定できるため、 これは非常に好まれます。文字列を応答に盲目的に書き込むだけです。おそらく、HTMLの残りの部分の後に、または途中の未定義の場所に文字列を追加します。Response.WriteResponse.Write

コントロールはテキストを要素Labelでラップすることに注意してください。span完全なマークアップコントロールがある生データを出力する場合は、Literalコントロールの使用を検討してください。

ちなみに、コードに関するアドバイスをいくつか...

C#usingステートメントを調べてください。よりエレガントな方法try/finallyで実装するIDisposableもの(呼び出す必要があるもの)の構成を処理します。.Dispose()基本的に、廃棄コードを自分で作成する必要がなくなり、一般的に、よりクリーンで安全なコードが得られます。

あなたのcatchステートメントでは、現在、実際にキャッチした例外を完全に無視しています。これは意図的なものですか?または、このコードで計画のこの部分を修正していますか?原則として、例外データを破棄しないでください。これには、 (「何か悪いことが起こった」とは対照的に)が起こったかの実際のエラーメッセージと、それがどこで起こったかが含まれています。

于 2012-04-05T00:54:17.357 に答える
0

ASP.NETラベルコントロールがある場合は、そのTextプロパティ値を設定できます。

<asp:Label ID="lblSubmit" runat="server" Text="Label"></asp:Label>

そしてコードでは、

lblSomeLabel.Text = "Email Sent";

runat = "server"プロパティでDivコントロールを使用して、コードからその内部htmlを設定することもできます。

<div id="divMessage" runat="server" />

そしてコードでは、

 divMessage.innerHTML="Email Sent!";
于 2012-04-05T00:59:15.563 に答える
0

labelname.text="yourtext";を使用することをお勧めします。

または、上記のラベルのテキストプロパティ値。

于 2012-04-05T02:34:06.760 に答える