2011-12-07 12 views
0

URLの長さは2084文字に制限されています。私はエッセイを電子メールで送信する必要があるフォームを持っています。私はMVCを使用していません。フォームはPOSTデータ、runat = serverに設定されます。メインページの背後にあるコードを読み込んでメールを送信するだけで、URLに渡されるすべての変数は必要ありません。これは可能ですか、ASP.netはVIEWSTATEデータでURLを埋めるだけですか?もしそうなら、どうすればこのデータをURLに入れずにメールを送ることができますか?フォームを送信するときのC#ASP.NET URLの短縮

私はさらに大きなmaxQueryStringLengthを許可するためにweb.configを編集しましたが、古いブラウザを読んでいるのは実際にはそれをサポートしていません。

<form id="infoForm" runat="server" name="contactForm" method="POST" action="#"> 
    <!--Other form stuff here--> 
     <asp:Button class="button" id="submitButton" Text="Submit" runat="server" 
     onclick="submitButton_Click" /> 
</form> 
+0

なぜページ間でメールコンテンツをプルする必要がありますか?ポストバックで同じページから送信できませんか?私はあなたの意見を裏付けましたか? – Mariusz

+0

私はPHPとColdFusionからASPに来ているプログラマーですので、間違っている可能性があります。フォームは以下のように設定され、submitButton_Clickで実行する関数があります。

Geekender

+0

SOLVED:フォームからrunat = serverタグを削除し、web.configのVIEWSTATEを無効にすることで動作します。すばらしいです。 – Geekender

答えて

2

電子メールを送信する場合は、URLを介してデータを送信する必要はありません。 System.Net.Mailを使用して電子メールを送信するだけで、フォームデータが電子メールに送信されます。以下

コードサンプル:

protected void Btn_SendMail_Click(object sender, EventArgs e) 
{ 
    MailMessage mailObj = new MailMessage(
     txtFrom.Text, txtTo.Text, txtSubject.Text, txtBody.Text); 

    SmtpClient SMTPServer = new SmtpClient("localhost"); 

    try 
    { 
     SMTPServer.Send(mailObj); 
    } 
    catch (Exception ex) 
    { 
     Label1.Text = ex.ToString(); 
    } 
} 
+0

電子メールの部分が正しく機能しています。大きなテキストボックスが追加されただけで失敗します。上記の私のコメントを参照して、私はフォームを持っている可能性がありますし、送信ボタンが間違って設定します。 – Geekender

+0

あなたのクライアント側のコードとサーバー側のコードの混在。 onclickはクライアント側のコードです。電子メールを送信するにはコードを使用してください。 asp.net webformには、id atributeとrunat = serverだけが必要です。名前や方法は必要ありません。コードビハインドはすべてを処理します。 –

+0

コードをに変更し、メソッドをPOSTからGETに変更し、依然_VIEWSTATEデータの非常に長いURLを持ちます – Geekender

0

このページは、viewstateデータとともにサーバーに送信されます。ここでURLを気にする必要はありません。

+0

意図的ではありません。なぜURLが入力されているのか不明です。 – Geekender

0

あなたはPOST、あなたがのRequest.Form [「FIELD_NAMEを」]を使用して、その情報にアクセスできる場合、あなたはちょうどあなたが電子メールを送信するために必要なすべての情報を収集することができます。 Request.QueryStringは、GET動詞を使用して送信した情報を検索するために使用されます。

+0

メインページからコードビハインドページまで、ページ間を渡すことについては何も気にしないので、これは必要ではありません。 – Geekender

0

ViewState、POSTフォームの値などはURLに含まれていません。あなたはそれを増やすことを心配する必要はありません。

+0

何らかの理由で、彼らは私にとって瞬間です。私が間違って何をしているのかわからないのは、この動作の原因です。 – Geekender

+0

デフォルトのPOSTではなく、フォームのメソッドをGETに変更しましたか? –

+0

ちょうどテストのためにそれを試みたが、まだビューステート情報の束を持っている – Geekender

関連する問題