我对 C# 和 .NET 非常陌生,我发现自己面临着一个问题,并且不确定我需要朝哪个方向前进。
我的公司与第三方订阅履行系统合作以实现许多功能,包括计费和续订。该系统能够在触发某些事件时自动发送电子邮件。例如,每个订阅都会经历我们所说的续订系列。本系列由贯穿订阅周期的多项努力组成。
当订阅符合本系列的某些工作要求时,我们可以生成一个事件,该事件将导致系统使用 XML 负载向给定 URI 发送 HTTP POST 请求。端点(.aspx 页面)接收请求,对其进行处理,然后返回响应(在本例中为 HTML 代码)。然后,履行系统会通过电子邮件发送该 HTML。
我创建了一个基本的 Web 应用程序,其中一些 .aspx 页面已启动并运行。每个页面都有一个相应的 .cs 代码隐藏文件。
这就是我的问题真正开始的地方。在我们的履行系统中,我们只能为事件和产品的每个组合定义一个端点。因此,无论订阅当时符合哪种努力,事件本身都是相同的。但不同的是 HTTP POST 请求的 XML。正是在该 XML 中,我可以知道该请求是为哪些工作而生成的。之所以重要,是因为每次工作对应的电子邮件的 HTML 都是不同的。换句话说,工作 1 与工作 2 应该呈现的 HTML 从上到下不同。工作 2 与工作 3 不同,依此类推。
所以,我想弄清楚的是如何“引导交通”。由于所有这些请求都将到达单个端点,因此我需要动态返回正确的 HTML 来完成相应的工作。
在同一应用程序的不同 .aspx 页面中,有一些内容需要根据请求的内容动态生成。在这种情况下,我使用了两个PlaceHolder
控件,每个可能的文本集都有一个。然后,在后面的代码中,设置它们Visible
根据需要将属性设置为 true 或 false。
我很早就放弃了在这种情况下这样做的想法,因为有五六个 HTML 模板,将它们全部塞到一个页面中会很混乱并且难以维护。
这就是我现在的处境,我不知道下一步该做什么。我有一种感觉,用户控件或自定义控件将是最佳选择?但是,普通的旧重定向是更好的选择吗?或者以上都没有?
您驳回的解决方案非常接近正确的解决方案。但是,您可以采取一些措施来简化它并使维护更容易。
我们在这里要做的是为每项工作构建一个自定义控件或用户控件。这将使您能够单独维护工作的代码,而无需将所有内容混合在一处。然后,您的整个端点 *.aspx 页面由单个占位符控件组成。处理请求时,Page_Load 方法将解析您的 xml 并找出您需要做什么。然后,它将创建适当控件的新实例,将其添加到占位符,并将其余数据传递给控件以完成处理。
由于此处的所有控件都有一些共同点(接收 xml 消息的能力),因此您可能首先还需要创建一个基础控件,以便各个工作控件继承。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)