我的网址长度上限为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>
答案 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中;你不必担心增加它。