【发布时间】:2012-02-17 14:57:04
【问题描述】:
我有一个 HTML 文件,它将作为我要发送的电子邮件的模板。 html中的字段是可变的。我想知道是否有一种可靠的方法可以用变量替换 HTML 文件中的占位符。我知道我可以 string.Replace 所有这些,但这并不理想,因为我有很多变量。这是html文件的样子
<html>
<head>
<title></title>
</head>
<body>
<div>
Please read the Cruise Control Details Below<br>
<br>
<table width='100%'>
<tr>
<td width='100%' colspan='5'>
<font size='4'><b>Release Details</b></font>
</td>
</tr>
<tr>
<td width='20%'>
<b>RFC Ticket #</b>
</td>
<td>
%release.RFCTicket%
</td>
<td>
</td>
<td>
</td>
<td width='10%'>
</td>
<td width='20%'>
<b>Project / Release Name</b>
</td>
<td width='20%'>
%release.ReleaseName%
</td>
</tr>
<tr>
<td width='20%'>
<b>Release Date</b>
</td>
<td width='20%'>
%release.ReleaseDateString%
</td>
<td>
</td>
<td>
</td>
<td width='10%'>
</td>
<td width='20%'>
<b>Release Time</b>
</td>
<td width='20%'>
%release.ReleaseTimeString%
</td>
</tr>
<tr>
<td width='20%'>
<b>CAB Approval Status</b>
</td>
<td width='20%'>
%release.CABApproval%
</td>
</tr>
<tr>
<td width='100%' colspan='5'>
</td>
</tr>
<tr>
<td width='100%' colspan='5'>
<font size='4'><b>Contact Information:</b></font>
</td>
</tr>
<tr>
<td width='20%'>
<b>Project / Team Lead</b>
</td>
<td width='20%'>
%release.TeamLead%
</td>
<td width='10%'>
</td>
<td width='20%'>
<b>On Call DSE</b>
</td>
<td width='20%'>
%release.OnCallDSE%
</td>
</tr>
<tr>
<td width='20%'>
<b>Phone</b>
</td>
<td width='20%'>
%release.ContactInfo%
</td>
<td>
</td>
<td>
</td>
<td>
</td>
<td width='10%'>
</td>
<td width='20%'>
<b>Phone</b>
</td>
<td width='20%'>
%release.OnCallDSEContact%
</td>
</tr>
<tr>
<td>
</td>
</tr>
<tr>
<td width='100%' colspan='5'>
<font size='4'><b>Migration Details:</b></font>
</td>
</tr>
<tr>
<td width='20%'>
<b>Deploy Dashboard</b>
</td>
<td width='20%'>
</td>
<td width='10%'>
</td>
<td width='20%'>
<td>
</td>
<td>
</td>
<b>Deploy Task</b>
</td>
<td width='20%'>
</td>
</tr>
%createTaskTable(ParseSpecialInstuctions().Split('|'))%</table>
</div>
我想用代码中代表它们的变量替换“%%”之间的值。我可以轻松
string.Replace("%release.RFCTicket%",release.RFCTicket);
但这在我看来有点令人费解,因为我在文件中有 10 个左右的变量。是否有任何内置方法可以满足我的要求?任何帮助将不胜感激,谢谢!
【问题讨论】:
-
您是否已经考虑过将您的内容序列化为 xml 并使用 xslt 转换为最终的 html?这将允许在不修改处理代码的情况下进行未来的更改 - 只需在需要时更改 xslt。
-
您的发布对象属性名称是否与模板中的完全匹配?
-
@AlexK。是的,他们这样做了,上面的那一行(替换)就是我现在正在做的事情