我在我的网站上有两个页面,这些页面用数据库中的内容填充,还有用户输入的字段(不要问!)。这些页面还包含一个带有嵌套DataList的ListView。这些页面上有按钮,当点击抓取页面的html内容时,将其写入HtmlTextWriter,然后获取文本并将其放入电子邮件中。Asp.Net的电子邮件内容
我需要做的是在放入电子邮件之前用html字符串替换HTML源代码中的任何TextBox/DropDownLists。
我的aspx代码到目前为止看起来是这样的:
<div id="mailableContent" runat="server">
<asp:TextBox ID="txtMessage" runat="server"/>
<asp:Label ID="lblContentFromDb" runat="server"/>
<asp:ListView ID="lvwOffices" runat="server">
//loads of stuff here including more textboxes for the user to fill in
</asp:ListView>
</div>
和代码隐藏是这样的:
StringBuilder stringBuilder = new StringBuilder();
StringWriter writer = new StringWriter(stringBuilder);
HtmlTextWriter htmlWriter = new HtmlTextWriter(writer);
mailableContent.RenderControl(htmlWriter);
MailMessage message = new MailMessage();
//do more stuff to set up the message object
message.Body = stringBuilder.ToString();
//send the message
我的想法至今都为1手动设置任何文本框为Visible = false,然后用相应的文本框值填充文字控件,这相当混乱和繁琐。注意我必须去掉输入控件,否则电子邮件的html需要用一个表单元素包装,我不想这样做。
有没有更好的方法来做到这一点,我想也许做一些.Net1.1样式xslt转换与xml文件中定义的页面内容可能是一个更好的方法来解决这个问题,但我不确定这是否这将处理我的要求,当前我正在使用带有嵌套DataList的ListView。
谢谢你的提问stion,但是这是如何解决ListView/DataList需求的? – 2009-10-15 11:04:58
我会继续前进,我不确定我是否理解这个问题。 – 2009-10-15 11:58:16