加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – MVC框架是否配备了丰富的页面设计?

发布时间:2020-12-16 06:48:52 所属栏目:asp.Net 来源:网络整理
导读:为了给这个问题添加前缀,我决定将我们的旧版遗留系统(从vb6,vba,vb.net到c#.net的40个程序)移动到使用相同DAL的两个独立系统(条形码终端和一个基于网络的系统)因为我花了大部分时间在15年的vba程序中修复糟糕或不存在的业务逻辑.我最近构建了一个完整的实体
为了给这个问题添加前缀,我决定将我们的旧版遗留系统(从vb6,vba,vb.net到c#.net的40个程序)移动到使用相同DAL的两个独立系统(条形码终端和一个基于网络的系统)因为我花了大部分时间在15年的vba程序中修复糟糕或不存在的业务逻辑.我最近构建了一个完整的实体框架模型,具有流畅的验证,并且在使用它之后对它感到高兴.

小团队熟悉webforms(但不是很熟悉),但最近几天我一直在探索MVC Razor.我喜欢MVC框架,直到我试图开始尝试在同一页面上添加更多功能,然后似乎任意难以复制我放在webform中的最新系统.在此之前,我会急切地加载一个客户及其所有的子实体,然后将其绑定到客户的单页,以便他们可以访问所有内容(这是他们想要的),它可以正常运行并且不会很慢.从这个单一页面我可以编辑他们所有的帐户详细信息/联系人/电子邮件/电话/工作.

我在MVC中完成和看到的所有示例都处理单个更新,单个编辑等但您肯定无法将每个操作分离到新的视图/页面中?我可以将丰富的模型传递给MVC中的视图,但是尝试更新所有不同的子实体会很痛苦.

这可能是MVC没有设计的确切设计,这是好的,如果MVC将是一个更好的平台,我愿意适应它,但你是如何处理增加这种复杂性的呢?我见过的一些方法:

>很多部分观点?将子信息传递给他们(或id和延迟加载它)?
>我见过包装多个< forms>的方法.围绕一切,并以这种方式处理行动.
>几乎完成每项任务

如果解决方案更轻巧,更易于维护,我将研究我需要的任何东西,我只是想在早期阶段看看我是否在浪费时间.任何指向我应该问的正确问题的指针都将不胜感激.

解决方法

与其他任何技术相比,ASP.NET MVC处理复杂页面的能力或多或少都没有.

当然,MVC需要比Web Forms应用程序更低级别的工作,没有直接的绑定支持,但在大多数情况下,这是一件好事,并且在页面呈现方式方面提供了更大的灵活性.

MVC的整个想法之一是让你对事物有更多的控制权,但是这种控制导致你需要更多的知识,并且在大多数非平凡的案例中都需要你付出更多的努力. MVC提供了许多工具功能来加速琐碎的工作(比如创建基于标准表的CRUD),但是当你有复杂的模型时,你将不得不自己完成大部分工作.

这并不是说MVC“不适合”它,但只是控制和灵活性需要权衡,你需要承担更多的责任.

在您的情况下,您只需创建一个包含所需字段的视图模型.然后,您创建表单以编辑这些字段.在控制器中,您需要取消该视图模型,并在数据库中创建或更新必要的记录.这并不难,但它比WebForms数据绑定更有用.

您可以查看更高级的MVC工具(商业),例如Telerik的工具,它们已经开发了更多类似数据绑定的接口,但MVC不是一种拖放式技术,需要您连接并编写所做的各种逻辑.

如果你需要drag-n-drop,数据绑定功能,那么没有.. MVC不是正确的技术.但是,随后WebForms要求您接受许多妥协,并以多种方式绑定您的双手.

您可以使用部分视图,但我很少使用它们.我更喜欢使用Editor / DisplayTemplates,因为它们可以正确地命名表单字段,即使对于集合和复杂对象也是如此.如果你不小心,PartialViews往往会有很多陷阱.我几乎只使用它们作为幻想包含,或使用Ajax时.

我不确定你是通过“围绕所有东西包装多个<形式>.你不能在HTML中嵌套表单,这是不合法的.如果你的意思是在表格的每一行周围放置一个表格,那就不是有效的HTML在大多数情况下(将表格放在表格和tr之间是不合法的).

如果你遇到一个你可以提出的具体问题会有所帮助,模糊的反对意??见无助于我们解决你的问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读