【发布时间】:2011-03-06 18:03:18
【问题描述】:
1:我有一个带有一些占位符标记的 .html 文件。
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body>
First Name : <FIRSTNAME/> <br />
Last Name: <LASTNAME/>
</body>
</html>
2:我有一个类来保存从 db 返回的数据
public class Person
{
public Person()
{
}
public string FirstName { get; set; }
public string LastName { get; set; }
}
3:PersonInfo.aspx 我用实际值替换占位符写出这个 .html。
public partial class PersonInfo : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Person per= new Person();
per.FirstName = "Hello";
per.LastName = "World";
string temp = File.ReadAllText(Server.MapPath("~/template.htm"));
temp = temp.Replace("<FIRSTNAME/>", per.FirstName);
temp = temp.Replace("<LASTNAME/>", per.LastName);
Response.Write(temp);
}
}
4:PersonInfo.aspx 实际上是空的,因为我是从代码隐藏中注入 html。
当调用 PersonInfo.aspx 时,将显示占位符中具有适当值的 html 模板标记。还有机会我想在 html 电子邮件中发送最终标记(尽管这不是问题的一部分,因为我知道如何发送电子邮件)。
这是在我的 html 模板中填充值的最佳方式还是其他更好的选择?
注意:这是一个非常简单的示例。我的课程非常复杂,涉及对象作为属性,而且我的 html 模板有 40-50 个占位符。
所以我第 3 步中的代码需要 40-50 条替换语句。
如有任何疑问,请随时提出,并非常感谢任何意见。
【问题讨论】:
-
您能否再解释一下您要寻找的最终结果是什么?这是某人正在浏览器中查看的动态网页,还是您正在尝试生成电子邮件内容?
-
您使用的是有效的 XML 吗?
-
@Daniel,它既可以显示在页面上供用户打印,也可以通过单击按钮发送电子邮件。
-
您是否完全使用网络表单?使用 ASP.NET MVC 和 Razor 视图引擎可以很容易地做到这一点,而且我 98% 确信有一种方法可以渲染它以获取最终的 HTML 内容以发送电子邮件。
-
@Daniel:是的,必须使用网络表单。