ASPX 中的动态页面呈现

2023-12-01

我对 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(使用前将#替换为@)

ASPX 中的动态页面呈现 的相关文章

  • 您使用什么工具和技术来查找死代码? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 您使用哪些工具和技术来查找 NET 中的死代码 过去 我用 Obsolete 属性修饰方法 传递 tr
  • HTML 文档

    有没有一个工具可以从 VS2010 生成的 XML 文档文件生成 HTML 页面 我在谷歌上搜索了这样的工具 但没有找到 我下载并安装了SandCastle 但我不明白如何使用它 尝试使用Sandcastle 帮助文件生成器 http sh
  • gets 和 scanf 有什么区别?

    如果代码是 scanf s n message vs gets message 有什么区别 似乎两者都获取消息的输入 基本区别 参考您的特定场景 scanf 遇到一个时结束接受输入whitespace newline or EOF gets
  • 在子目录中构建共享库

    我正在尝试构建一个使用一些 C 代码的 R 包 我有一个编译为可执行文件的 C 库 可以从命令行调用 有一个与之关联的 Makefile 我正在尝试获取信息here http cran r project org doc manuals R
  • 使用索引避免迭代器失效,维护干净的接口

    我创建了一个MemoryManager
  • 如何从 std::vector 中删除元素而不调整其大小

    迭代器擦除 迭代器位置 迭代器擦除 首先是迭代器 迭代器最后 擦除元素 从向量中删除 容器可以是单个元素 位置 或一系列元素 第一个 最后一个 这有效地减少了向量 大小除以元素数量 删除 调用每个元素的 之前的析构函数 and remove
  • 在异步方法中使用时 HttpClient 标头被清空

    我正在使用 NET Framework 4 6 1 我的 Web api 中有一个控制器 其中有静态 HttpClient 来处理所有 http 请求 在 IIS 上托管我的应用程序后 大约每月一次 我的应用程序的所有传入请求都会出现以下异
  • 在宏中使用 # [重复]

    这个问题在这里已经有答案了 请解释一下代码 include
  • 外部剃刀视图看不到外部模型

    我对外部剃刀视图有疑问 在我的项目中 我有主 mvc Web 程序集和动态加载的外部类库程序集 来自 DB 及其自己的控制器 视图和模型 这些程序集在运行时不会直接引用和加载 我能够通过为控制器创建自定义控制器工厂 为视图创建自定义虚拟路径
  • ASP.NET MVC - 如何实现可重用的用户控件并保持DRY?

    第一次发帖 请多多包涵 在 ASP NET MVC 中创建用户控件时 构造代码的最佳方法是什么 以便调用使用用户控件的视图的控制器不必对控件了解太多 我想知道在 ASP NET MVC 中使用用户控件时保持 DRY 的好方法 请注意 此问题
  • 如何在 WCF 中反序列化自定义 SOAP 标头?

    我正在尝试向通过 WCF 的所有 SOAP 请求添加自定义标头 我发现这篇精彩的文章 http blogs msdn com b mohamedg archive 2012 10 21 adding custom soap headers
  • UWP - 绑定枚举差异

    我遇到了一个非常有趣的问题 假设 UWP 应用中有以下 XAML 页面内容
  • 如何“全局”捕获对象实例中引发的异常

    我目前正在编写一个 winforms 应用程序 C 我正在使用企业库异常处理块 遵循我所看到的相当标准的方法 IE 在 Program cs 的 Main 方法中 我已将事件处理程序连接到 Application ThreadExcepti
  • OpenMP 循环数组访问中的错误共享

    我想利用 OpenMP 来并行执行我的任务 我需要将数组的所有元素减去相同的数量并将结果写入另一个向量中 两个数组都是动态分配的malloc第一个填充了文件中的值 每个元素都有类型uint64 t pragma omp parallel f
  • WPF MVVM后台打印数据绑定问题

    我正在使用 wpf mvvm 开发一个销售点应用程序 在交易生命周期的许多阶段 都会在后台打印收据 我已经使用其他示例在后台生成和打印收据 我正在后台打印一个 UserControl 一切看起来都很棒 然后 我为该控件创建了 ViewMod
  • 如何在 ASP.NET 3.5 中的 Web 内容页面设置页面标题

    我已经阅读了大量关于如何执行此操作的帖子 文章 但我仍然没有从内容页面获取页面标题集 我的页面呈现正常 但我无法从内容页面获取标题集 所有页面都根据母版页设置了标题 这是我的母版页的代码隐藏 Partial Class zSEO Inher
  • 如何在 Windows 8.1 上打开多个 Visual Studio 窗口? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我使用的是 Windows 7 我能够启动多个 Visual Studio 并同时工作 现在我有 Windows 8 1 操作系统 每当我
  • 如何通过 Excel 互操作对象自动调整列大小?

    下面是我用来将数据加载到 Excel 工作表中的代码 但我希望在加载数据后自动调整列的大小 有谁知道自动调整列大小的最佳方法 using Microsoft Office Interop public class ExportReport
  • 在 C# 中为 ListBox 分配数据源时,如何从 ListBox 中删除所选项目?

    在 C 中为 ListBox 分配数据源时 如何从 ListBox 中删除所选项目 尝试删除时出现错误 设置 DataSource 属性后 无法修改项目集合 但是当我尝试从数据源 数据表 中删除项目时 它会抛出错误 因为 数据行不在当前行集
  • Unity 错误“内部构建系统错误。后端退出,代码为 -1073740791。”摧毁/杀死了我的项目

    好吧 我可能在这里夸大了 但这是真的 当我开始打开它时 该项目由于错误 内部构建系统错误 后端退出 代码为 1073740791 而被破坏 应用程序 这个项目已经在Google Play上发布了 也许和设置有关 有人可以帮忙吗 完整错误 I

随机推荐

  • SQLite数据库错误,无用日志

    我发布了应用程序的更新 但从用户那里收到了大量错误 我无法重新创建它或查明问题 我收到两个错误 java lang IllegalStateException attempt to re open an already closed obj
  • Angular Router - 网址更改但视图未加载

    我刚刚开始调整示例角度 离子选项卡导航应用程序 但遇到了问题 当我点击一个视图中的链接 所有旅程的列表 时 我应该被带到一个屏幕 其中包含有关该特定旅程的详细信息 改编自示例应用程序中的 聊天 然而它并不完全有效 URL 更改为预期的 UR
  • 如何为复杂的计算设置超时?

    我正在写一个像这样的程序 results for i in range 30 x 4 5 i results append x 然而 当i变得更大 结果并没有太大而无法提高 OverflowError 这将需要一个long计算结果的时间 所
  • 停止函数写入标准输出

    我的代码中有这一行 writer cv CreateVideoWriter video avi cv CV FOURCC X V I D 30 480 800 1 哪些输出可以对此进行控制台 Output 0 avi to video av
  • 执行 cx_Freeze 结果时的循环依赖

    我面临着一个非常简单的重现问题 但我根本不明白发生了什么 我尝试编译一个Python脚本 它使用fastparquet依赖关系 与 cx Freeze 当我直接启动它时 我能够执行我的脚本python script py 但是如果我用 cx
  • C# MySQL 连接过多

    我试着跑SELECT在桌子上MySql我收到此错误 Server Error in MyApp Application Too many connections Description An unhandled exception occu
  • 逐字突出显示表格中的文本,而不是整个范围

    我想为 html 表创建过滤器 例如网站 ctrl f 但当前代码突出显示搜索输入单个单词时的所有范围 无需任何插件 就像下图一样 Html表格过滤 search keyup function console log this val if
  • 如何使用 FFMpeg -timestamp 语法

    Hi All ffMpeg timstamp 选项是否像上图一样工作 07 21 54 07 07 05 黑盒容器中的白色文本 在 ubuntu 12 04 中 像这样输入执行 ffmpeg y f video4linux2 s vga r
  • 在 Excel 中每 X 行插入行

    我有一长串代码 例如 008 45 等 需要多行文本来解释它们 我有代码列表 我想知道如何自动插入一行 例如第五行 下面的例子 1 2 3 4 5 6 7 8 9 10 100 每五行我想插入给定数量的我选择的行 我怎样才能做到这一点 谢谢
  • 如何将 Java 8 LocalDateTime 与 JPA 和 Hibernate 结合使用

    我有以下类描述片段 Column name invalidate token date Temporal TemporalType TIMESTAMP private LocalDateTime invalidateTokenDate 此代
  • 使用 PHP 脚本运行 shell 命令

    我正在使用 CodeIgniter 创建应用程序 但无法使用 PHP 脚本运行 Linux 命令 如何运行终端命令 我试过了shell exec and exec 但是在使用 CI 时两者都不起作用 这取决于您的服务器配置 如果这些功能被禁
  • QMainWindow 在 show() 之后立即关闭

    我是 Qt 新手 主要使用 Objective C 所以我遇到了可能是新手问题 来自QDialog我尝试打开的窗口QMainWindow像这样 this gt close SQLWindow window window receivePat
  • 使用 python requests 模块在单个请求中上传多个文件

    蟒蛇请求模块提供了有关如何在单个请求中上传单个文件的良好文档 files file open report xls rb 我尝试使用此代码来扩展该示例 以尝试上传多个文件 files file open report xls rb open
  • 如何使用 CAPI 的 CryptImportKey 和来自 OpenSSL 的 PEM 编码公钥?

    如何获取 Microsoft 的 CryptoAPICryptImportKey函数导入一个PEM编码密钥 它确实有效 但是CryptDecrypt返回错误 1 Generate a Public Private RSA key pair
  • 使用 CSS 从中间展开 div,而不是仅从顶部和左侧展开

    我不确定这是否可行 但我认为使用 CSS 转换来创建 div 从其中心扩展到预定高度和宽度 而不仅仅是从左上角 的效果会很酷 例如 如果我有 demo div div 和 为简洁起见 省略了供应商前缀 square width 10px h
  • VS2015 尝试运行应用程序时出错:无效指针

    当您调试 Visual Studio 2015 解决方案时 您会看到以下错误消息 尝试运行应用程序时出错 指针无效 显然有些东西配置不正确 或者与权限相关 只是想知道是否有人已经找出原因 根据杰里米的建议 我查看了活动日志 有关活动日志的信
  • 将数据库从资产复制到数据库文件夹[重复]

    这个问题在这里已经有答案了 在主要活动中 我有一个方法可以从assets to the databases文件夹 try CHECK IS EXISTS OR NOT SQLiteDatabase dbe SQLiteDatabase op
  • 使用 ComboBox 将 DataGridView 绑定到 DataTable 不起作用

    我正在尝试创建一个绑定到 DataTable 的 DataGridView 其中一列是 ComboBox 代码运行 但在绑定后 不是在绑定数据时 出现以下错误 System ArgumentException DataGridViewCom
  • 如何在 OData C# 驱动程序中支持嵌套开放复杂类型?

    我在 NET Web Api 项目中使用以下 C OData 包 安装包 Microsoft AspNet OData安装包 Microsoft AspNet WebApi OData 当遵循微软的例子时在 OData v4 中使用开放类型
  • ASPX 中的动态页面呈现

    我对 C 和 NET 非常陌生 我发现自己面临着一个问题 并且不确定我需要朝哪个方向前进 我的公司与第三方订阅履行系统合作以实现许多功能 包括计费和续订 该系统能够在触发某些事件时自动发送电子邮件 例如 每个订阅都会经历我们所说的续订系列