ASPX中的动态页面渲染

我是C#和.NET的新手,我发现自己遇到了一个问题而且我不确定我需要朝哪个方向前进。

我公司与第三方订阅履行系统合作,实现许多function,包括计费和续订。 该系统能够在触发某些事件时自动发送电子邮件。 例如,每个订阅都会通过,我们称之为续订系列。 这个系列包括在订阅的整个生命周期中传播的几项努力。

当订阅符合本系列的某些努力时,我们可以生成一个事件,该事件将导致系统向具有XML有效负载的给定URI发送HTTP POST请求。 端点(.aspx页面)接收请求,处理它,并返回一个响应,在本例中为HTML代码。 该HTML随后由履行系统通过电子邮件发送出去。

我有一个基本的Web应用程序,其中一些.aspx页面已经启动并运行。 每个页面后面都有一个相应的.cs代码。

这是我的问题真正开始的地方。 在我们的履行系统中,我们只能为每个事件和产品组合定义一个端点。 因此,无论订阅当时符合哪种要求,事件本身都是相同的。 但是,有什么不同的是HTTP POST请求的XML。 我可以通过XML来判断生成请求的工作量。 重要的原因是因为相应电子邮件的HTML对于每个努力都是不同的。 为了用一种略微不同的方式来表达,应该呈现的HTML是不同的,从上到下,努力1而不是努力2.努力2与努力3不同,依此类推。

所以,我想弄清楚的是如何“引导流量”。 由于所有这些请求都将来到单个端点,因此我需要为相应的工作动态返回正确的HTML。

在同一个应用程序的另一个.aspx页面中,有些内容需要根据请求的内容动态生成。 在这种情况下,我使用了两个PlaceHolder控件,每个控件对应一个可能的文本集。 然后,在后面的代码中,根据需要将其Visible属性设置为true或false。

在这种情况下,我很早就解释了这样做的想法,因为有五到六个HTML模板,并且将所有这些模板填充到一个页面中会很麻烦且难以维护。

这就是我不知道接下来该做什么的地方。 我觉得用户控制或自定义控制将成为可行的方法吗? 但是,简单的旧重定向是一个更好的选择吗? 或者以上都没有?

您解雇的解决方案非常接近正确的解决方案。 但是,您可以采取一些措施来简化它并使维护更容易。

我们想要做的是为每项工作构建自定义控件或用户控件。 这将使您可以单独维护代码,而无需将所有内容混合在一起。 然后,您的整个端点* .aspx页面由一个占位符控件组成。 处理请求时,您的Page_Load方法将解析您的xml并找出您需要的工作量。 然后,它将创建适当控件的新实例,将其添加到占位符,并将其余数据传递给控件以完成处理。

由于此处所有控件之间存在一些共性(接收xml消息的能力),因此您可能首先要为要inheritance的各个工作控件创建一个基本控件。

据我所知,您希望拥有一个端点,但仍能够在内部“路由”请求。 这很容易实现。

例如,您可以使用Server.Transfer内部传输请求。 这样,您可以拥有5个或6个不同的HTML模板,然后根据请求的内容将传入的请求路由到正确的模板。

在此输入链接描述

这里我们给出一个示例,在运行时创建一个新的.aspx页面。 我们还提供了提供页面名称的选项。 用户可以随心所欲地给予。 与Google博客一样,我们在运行时创建新页面。新页面不在网站中,此页面创建需要在运行时创建,并且需要是动态的。