我正在试图找到一种方法来创建可用于通用表单的页面。我的想法是,我们办公室的人会使用obout编辑来创建看起来像表单的html。这个html将保存到数据库中。当用户想要填写表格并邮寄时,他们会点击正确的表格检索,这个html将被放入标签控件中。所以现在页面上有一个标签控件,一些html作为标签的文本。用户可以键入他们想要的值。所以html可能看起来像这样:
<p style="margin: 0px; text-align: center;">
Quarterly Report of Employees Serverd</p>
<br />
<br />
Employee:
<input type="text" style="width: 300px; height: 22px;" />
<br />
<br />
Address:
<input type="text" style="width: 300px; height: 22px;" />
<br />
<br />
<br />
用户可以在输入类型=“text”中键入一个名为John Smith的值,然后输入地址输入类型。
现在我想抓住所有这些HTML并将其发送给我。我知道如何做邮件部分,但抓住我没有得到的HTML。我可以在标签中获取html,但用户输入的文本不包含在该文本中。那么我如何获得用户输入的html和文本。任何想法。
感谢 香农
答案 0 :(得分:0)
选中此link作为第一个选项。
谢谢:)
您可以使用以下方式:
<input id="textField" type="text" runat="server"/>
C# - 代码背后
Mail.Send(textField.Value);
并且不要忘记在asp.net的标题部分使用ValidateRequest="false"
。
:)
答案 1 :(得分:0)
您可以遍历请求项以获取提交的值。如果要发送用于替换HTML输入字段的输入值的电子邮件,则必须解析表单HTML以查找输入字段:
<input type="text" id="firstName" name="firstName"
style="width: 300px; height: 22px;" />
然后用
替换它Request.Form["firstName"]
请注意,输入字段需要标识符,因此您可以从HTTP请求中检索它们。
希望这有帮助!
答案 2 :(得分:0)
首先,你真的想要在你的html中获得更多信息 - 至少在表单元素上有一些name
属性:
Employee: <input type="text" name="employee" />
这样,您可以创建一个aspx页面,如:
<%@ Page language="C#"
autoeventwireup="true"
codebehind="DynamicForm.aspx.cs"
inherits="TempWebApp.DynamicForm" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Literal id="m_HtmlForm" runat="server"></asp:Literal>
<asp:Button id="m_SubmitForm"
onclick="SubmitForm_OnClick"
runat="server"
text="Submit" />
</div>
</form>
</body>
</html>
然后在您的代码中,您将数据库中的html读入文字控件的.Text
:
using System;
using System.Web.UI;
namespace TempWebApp
{
public partial class DynamicForm : Page
{
protected void Page_Load(object sender, EventArgs e)
{
m_HtmlForm.Text = getFormData();
}
protected void SubmitForm_OnClick(object sender, EventArgs e)
{
// Just showing we've picked up the form data.
// You'll also see ViewState and others in here.
foreach (string key in Request.Form.AllKeys)
{
m_HtmlForm.Text += string.Format("<br />Key: <b>{0}</b><br />Value:<br />{1}<br />", key, Request.Form[key]);
}
}
private string getFormData()
{
// Excluded for brevity
}
}
}
显然,在你的按钮/回发处理程序中,你需要确保你拥有数据库中的原始HTML,然后修改输入元素以使用值为它们添加文本属性,或者更可能的是,替换它们使用实际值 - 否则如果用户开始使用单选按钮,复选框,选择列表等保存表单,则必须对表单进行大量额外解析。