asp.net-mvc – MVC组件GUI方法
我对使用MVC3构建交互式GUI的一般方法感兴趣.
我们的想法是构建一组可以集成(插入)到各种场景中的不同组件. 每个组件必须拥有自己的模型定义,控制器和视图. 所有内部实现细节,模型,行为等……必须驻留在组件内部, 运行组件的上下文不得对组件实现的内部细节做出任何假设. 另一方面,该组件不会对将使用它的上下文做出任何假设. 最后,组件必须提供与外界“通信”或“交互”的机制.除了内部,组件必须提供某种“外部”接口(如参数,数据,函数,事件……),这将允许组件集成到执行上下文中. 上下文(或场景)是包含组件的部分. 真实世界类别组件示例: 组件显示类别列表,并允许用户执行各种操作,如排序,分页和记录选择. 真实世界产品组件示例: 组件显示产品列表,并在其自己的控制器中处理模型状态恢复. 真实世界的仪表板页面(上下文,场景)示例: 页面显示类别和产品组件. 从技术上讲,页面更新的通信方法主要是通过AJAX,但如果没有AJAX就可以实现,那就更好了. 在AJAX的情况下,我想要使用服务器端控制器的解决方案,它决定并呈现应该在客户端上更新的内容(JSON或其他东西). 我不喜欢客户端脚本(客户端“喜欢”控制器)中的解决方案,它决定要调用哪些操作以及要更新的页面部分 – 这在前一段中所述必须由服务器上的控制器决定. 重要提示:通过某些路径直接调用时,组件不一定有效. 您通常如何实施所描述的系统? 解决方法
每个控制器处理整个用户机器模式.也就是说,粗略地说,每个控制器负责为用户案例编排用户 – 机器交互(用户机器模式是analysys阶段的结果).
现在,如果您将“标准行为”放在将协调用户 – 机器交互模式的控制器中? 这样,您将拥有“组件”而没有协调其执行的东西. 在Web表单中,您有一些页面可以协调放入其中的组件的执行…但是在Mvc中,协调员角色由控制器本身扮演. 您可以执行由控制器和视图组成的黑盒,只要它们中的每一个都负责整个用户 – 机器交互模式.这是一个“大组件”,不是一个小的构建块,因为实现CMS时就是这种情况. The Orchard CMS use a similar approach.然而,您所谓的组件实际上是预定义的块,它们扮演着用户构建的网站的整个部分的角色. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 调用en外部javascript文件的函数
- asp.net – 如何加速Visual Studio Webserver(Cassini)?
- asp.net-mvc – MVC 4安装失败
- asp.net – 对象不是垃圾回收,但不包含gcroot
- asp.net-mvc – 用于子操作的ASP.NET MVC路由匹配
- 在iis6.0中更改asp.net版本
- asp.net – Request.Url.AbsoluteUri和重写的URL
- asp.net – 如何检测用户操作系统
- asp.net-mvc – MVC4区域和表单认证
- asp.net-mvc – ASP.NET MVC局部视图慢?
- asp.net-mvc – ASP.NET MVC:多个项目错误
- ASP.NET Web API为单个路由定制IHttpControllerS
- .NET Core 2.0 Autofac注册类InstancePerRequest
- asp.net-mvc – LocalDB实例注册表项中缺少“Dat
- asp.net – MySQL ::连接器/净欧元符号
- asp.net-mvc – Azure下载blob文件流/ memorystr
- 像ValidationGroup这样的ASP.NET使用JQuery验证插
- asp.net – iTextSharp与iText
- asp.net-mvc – 使用MVC w / Bundles时CSS中的相
- asp.net-mvc – 使用asp.net属性路由的根路径的默