提交表单时缩短C#ASP.NET URL

时间:2011-12-07 14:36:12

标签: c# asp.net

我的网址长度上限为2084个字符,我的表格需要通过电子邮件发送论文。我没有使用MVC,不确定是否重要。表单设置为POST数据,runat = server。我只想在主页后面的代码加载并发送电子邮件,我不需要在URL中传递所有变量。这是可能的,还是ASP.net只是用VIEWSTATE数据填充URL?如果是这样,我怎样才能发送包含此数据的电子邮件而不进入网址?

哦我还编辑了web.config以允许更大的maxQueryStringLength,但是从我正在阅读的旧浏览器来看,无论如何都不支持。

<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>

4 个答案:

答案 0 :(得分: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();
    }
}

答案 1 :(得分:0)

页面只是与视图状态数据一起发布到服务器。你不需要在这里打扰URL。

答案 2 :(得分:0)

如果您发布POST,您可以使用Request.Form [“field_name”]访问该信息,然后您可以收集发送电子邮件所需的所有信息。 Request.QueryString用于检索您使用GET动词发送的信息。

答案 3 :(得分:0)

ViewState,POST表单值等不包含在URL中;你不必担心增加它。