从逻辑层(C#)生成三层体系结构中的web链接

从逻辑层(C#)生成三层体系结构中的web链接,c#,asp.net,n-tier-architecture,3-tier,C#,Asp.net,N Tier Architecture,3 Tier,我有一个三层体系结构系统(数据、逻辑、表示)。表示层是一个ASP.Net网站 我想不时发电子邮件。我的假设是,这种发送电子邮件的逻辑应该放在逻辑层。但是,此类电子邮件需要有指向web层路径的链接。举个例子,当订单生成时,发送的电子邮件需要有一个链接,用户可以点击在线支付 考虑到此页面是在表示层中实现的,因此逻辑层和表示层之间没有直接链接。你会怎么做,也许会有关于这种分层的最佳实践?应该是在逻辑层,在电子邮件中有链接没有坏处 电子邮件通常包含链接,如果链接托管在同一个域上会怎么样。是的,但为了构建

我有一个三层体系结构系统(数据、逻辑、表示)。表示层是一个ASP.Net网站

我想不时发电子邮件。我的假设是,这种发送电子邮件的逻辑应该放在逻辑层。但是,此类电子邮件需要有指向web层路径的链接。举个例子,当订单生成时,发送的电子邮件需要有一个链接,用户可以点击在线支付


考虑到此页面是在表示层中实现的,因此逻辑层和表示层之间没有直接链接。你会怎么做,也许会有关于这种分层的最佳实践?

应该是在逻辑层,在电子邮件中有链接没有坏处


电子邮件通常包含链接,如果链接托管在同一个域上会怎么样。

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