从逻辑层(C#)生成3层架构中的Web链接

3
我有一个三层架构系统(数据层、逻辑层、表示层)。表示层是一个ASP.Net网站。
我想不时地发送电子邮件。我认为,发送电子邮件的逻辑应该放在逻辑层中。然而,这些电子邮件需要有指向Web层路径的链接。举个例子,当生成订单时,发送的电子邮件需要有一个链接,用户可以点击以在线支付。
考虑到此页面是在表示层实现的,逻辑层和表示层之间没有直接链接。如何解决这个问题,并可能涉及到分层的最佳实践?
1个回答

0

应该放在逻辑层,将链接放在电子邮件中没有任何问题。

电子邮件通常包含链接,如果这些链接托管在同一域名下会怎样呢?


是的,但为了建立链接,实际链接可能会根据演示层中的位置而改变。因此,逻辑层需要有一个链接到演示层的链接。在我看来,这看起来不太对。另一个选择是硬编码链接,但我总是尽量避免硬编码字符串,因为它们会使代码库极难维护。 - Karl Cassar
或者你也可以维护一个链接字典,并根据一些标记进行选择,或者你可以拥有单独的电子邮件模板,你的逻辑层将仅基于提供的模板生成电子邮件。 - Asif Mushtaq
链接必须根据订单ID等动态生成,因此不能仅基于模板,还需要基于需要替换的标记,例如[OrderId] -> 1234(实际订单ID)。 - Karl Cassar
是的,这就是我所说的。你需要一些机制,让你的邮件发送器从某种队列中获取发送电子邮件的请求,或者直接从表示层调用邮件发送器,提供所有必需的信息,例如订单ID。 - Asif Mushtaq

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接