![]() |
1
3
ASP.Net页面只是继承某个基类型的普通旧.Net类,您可以像创建任何其他类一样创建实例。但是正确呈现该页面的html的过程是。。。 complicated . 我不建议这样做。 我原本以为您可能只是使用自定义控件,但重新阅读您的问题,我发现这是用于通过电子邮件发送的,因此自定义控件并不适合。 但我仍然认为asp.net页面是一种过火的操作,因为您不必担心回发、查询字符串、会话等问题。实际上,您只是将模板值插入字符串变量中,即使其中一个模板位置(收据网格)稍微复杂一点,或者其本身可能是模板字符串。 CompiledFormat 实施更合适。 |
![]() |
2
2
我知道这并不能直接回答您的问题,但如果您试图获取一些数据并格式化HTML消息,XSL转换可能是一种更干净的方法。几年前,在同一个项目中,这对我来说非常有效。它比整个aspx页面(尤其是使用DataGrid)的重量要轻得多,并且在.NET中很容易加载和操作。 有一点学习曲线,但我不认为这太糟糕。我从这里的教程中学到了我需要知道的大部分内容: http://www.w3schools.com/xsl/default.asp 如果您喜欢VisualStudio的设计器,不想手工编写整个内容,可以从具有所需布局的ASPX页面开始,在浏览器中查看,并将源代码另存为起点。为了布局重复的数据,我会使用一个转发器而不是数据网格-如果不进行回发,数据网格会携带大量不需要的信息,一旦获得了所需的布局,就可以用XSL替换转发器标记。NET的内置XML序列化应该允许您只需几行代码就可以将底层数据转换成XML。 对于我的项目,Altova的XMLSpy帮助很大——我将一些示例XML保存到一个窗格中,并使用第二个窗格调整XSLT,直到结果符合我的要求。这是几年前的事了;现在可能还有其他好的工具可用。
最后:关于HTML电子邮件,你是对的。它们是可以避免的,但是当它们不能避免时,您需要确保您发送的HTML尽可能干净和简单。如果您创建一个干净的模板,那么比依赖.NET的渲染更可能得到这样的结果。您的收件人可能会使用所有不同的电子邮件客户端,而Outlook和Lotus(例如)在显示HTML消息时的行为非常不同。创建在这两个方面看起来都不错的消息是我项目中最大的障碍,而不是首先生成HTML。 我希望这是有帮助的,不要离题太远。 |
![]() |
3
0
在处理ReceiptPage的信息之前,您是否可以将需要传递的对象存储在会话变量中,并在ReceiptPage的代码中读取相同的内容。。。在这种情况下,你可以使用你在问题中提出的方法。(Server.Execute()) 只是一个想法。 |
![]() |
Stefan0309 · Xamarin在代码隐藏中形成本地化 7 年前 |
![]() |
Kiel · 铁路超高访问背后的变量代码 8 年前 |
![]() |
Johnny Bones · 连接未关闭。连接的当前状态为“打开” 8 年前 |
![]() |
kez Sirwan Afifi · 为网格标题中的复选框指定值 9 年前 |
![]() |
Johnny Bones · 查找表单加载上转发器控件的名称 9 年前 |
![]() |
Webashlar Developers · wpf动态边界厚度绑定 10 年前 |
![]() |
Mehrdad · 动态设置AttributesObject 10 年前 |