【问题标题】:ASP.NET C# Web Forms - How to make an interactive CRUD page in a legacy application?ASP.NET C# Web 窗体 - 如何在旧应用程序中制作交互式 CRUD 页面?
【发布时间】:2017-04-18 17:59:14
【问题描述】:

我最近在 ASP.NET 和 C# 中为一个有点旧的 Web 表单应用程序添加了角色/权限功能。现在我需要两个简单的功能:添加/编辑角色,添加/编辑角色权限(权限在表中但不可修改)。表格有点像这样(我需要一个粗体的界面):

  • 角色表:RoleID、RoleName
  • 权限表:PermissionID、PermissionName
  • Roles_Permissions 表:RoleID、PermissionID

在没有回发的意义上,我怎样才能让它们具有交互性,并且在同一页面中同时具有这两种功能?我可视化角色下拉列表,即选择一个角色,权限列表刷新该角色,并且在那里,用户可以更改权限,rolename甚至添加/删除角色。该页面需要使用现有的母版页,以使其外观与 Web 应用程序的其余部分相匹配;我不知道这是否会限制功能。

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

构建页面的最快/最简单的方法是什么,将来易于维护,并且是开始基于它“现代化”网络应用程序的其余部分的良好起点?

【问题讨论】:

  • 这不太适合 Web 表单(该技术完全是关于服务器端逻辑和回发)。我建议您尝试使用具有处理 AJAX 的良好客户端库的 MVC。
  • 感谢您的提示,但目前我无法将整个现有 Web 应用程序更改为 MVC,只需要新功能。是否没有实现类似目标的选项?
  • 嗯,这不应该像在 MVC 中那样简单直观。您也许可以添加一些普通的 JavaScript(可能是 jQuery)和 AJAX,但您会受到限制。 AngularJS 等客户端框架不适用于 Web 表单,至少从我的经验来看是这样。

标签: javascript c# asp.net webforms breeze


【解决方案1】:

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

从这里开始,根据不同的情况,你可以做几件事。

ASP.NET AJAX

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

单页应用程序

您提到了诸如轻风、淘汰赛和 Angular 之类的框架。所以,让我们专注于那些。同样,根据您的经验和应用程序,这些可能是引人注目的选项。暂时我不会去 Angular,因为它更适合完全重写。它可以嵌入到另一个应用程序中,但对于您的项目范围来说可能工作量太大。

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

【讨论】:

  • 我结束了使用 ASP.NET AJAX 控件,在使用普通回发开发它之后,我只是添加了 scriptmanager/updatepanel/contenttemplate,它在没有回发的情况下工作。感谢您的提示
猜你喜欢
  • 2014-06-26
  • 2011-06-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-01
  • 2010-09-12
  • 1970-01-01
相关资源
最近更新 更多