ASP.NET C# Web Forms - 如何在遗留应用程序中制作交互式 CRUD 页面?

ASP.NET C# Web Forms - How to make an interactive CRUD page in a legacy application?

我最近向一个使用 ASP.NET 和 C# 的旧 Web 表单应用程序添加了 roles/permission 功能。现在我需要两个简单的函数:add/edit 角色,add/edit 角色权限(权限在 table 中但不可修改)。 tables有点像这样(我需要一个粗体的接口):

在没有 post-back 并且在同一页面中同时具有这两种功能的意义上,我怎样才能使它们具有交互性? I visualize a dropdown for the Roles, that when one is chosen, the list of Permissions refreshes for that role, and right there the user can change the permissions, RoleName, or even add/delete a role.该页面需要使用现有的母版页以使其外观与 Web 应用程序的其余部分相匹配;我不知道这是否会限制功能。

我需要实现尽可能的非侵入性(没有奇怪的插件,并且无需在客户端进行任何配置就可以使用当前的浏览器)。我找到 breeze, knockout 和 angularjs,但找不到 if/how 我可以将功能添加到 Visual Studio 2012(版本 11)中的 ASP.NET C# Web 窗体.

构建页面的 fastest/easiest 方法是什么,将来易于维护,并且是开始 "modernizing" 其余网络应用程序的良好起点?

您可以将标准的空白 aspx 页面添加到您的应用程序中,并使其在 Web 窗体应用程序中正常工作。连接导航,确保它选择您的母版页(如果您正在使用母版页)等。

从这里开始,根据不同的情况,您可以做一些事情。

ASP.NET AJAX

这最初是为 ASP.NET Web 窗体引入的,并使用 Web 窗体控件和代码隐藏中的少量工作将所有内容粘合在一起。它不如其他解决方案灵活,但对于您引用的场景应该没问题。如果您对 Web 窗体的熟悉程度超过其他编程模型,那么这将是首选方法。现有应用程序的策略或结构也可能使它更可取。

单页应用程序

您提到了 breeze、knockout 和 Angular 等框架。所以,让我们关注这些。同样,根据您的体验和应用程序,这些可能是引人注目的选择。我暂时不会达到 Angular,因为它更适合完全重写。它可以嵌入到另一个应用程序中,但对于您的项目范围来说可能工作量太大。

至少您可以使用简单的 JavaScript 和 AJAX,但您需要编写大量自己的代码。如果您添加一点 jQuery,这将有助于 DOM 操作和对您的服务的 AJAX 调用。我已经成功地通过 jQuery 操作 DOM 和 Knockout 进行数据绑定来增强旧应用程序。如果没有 jQuery,您或许可以凑合,但我不会。这两个库不会对您使用它们的环境做出任何假设,并且应该满足于在更大的应用程序中将其限制在单个页面的有限范围内。