ASP.NET MVC – 如何实现可重用的用户控件和维护DRY?
|
第一篇文章,请温柔:) 在ASP.NET MVC中创建用户控件时,构建代码的最佳方法是什么,调用使用用户控件的视图的控制器并不都必须了解这些控件?在ASP.NET MVC中使用用户控件时,我想知道一个维护DRY的好方法. 请注意,此问题仅与需要特殊处理和回发逻辑的用户控件有关.对于仅用于查看的用户控件(使用RenderPartial)或者需要进行一些预处理才能创建适当的ViewModel(使用RenderAction),为创建好的DRY代码创建了好的DRY代码. 此外,此问题仅适用于在应用程序中实现可重用的控件.在这一点我不担心应用程序之间的可重用性. 给出一个具体的例子,假设我想创建一个“快速添加”用户控件,它包含三个输入字段,名字,姓氏和公司名称以及提交按钮.当使用QuickAdd功能时,应该执行以下步骤,而不管控件所在的页面如何: >确认字段不为空,如果是,则显示一个指示符. 实现DRY的主要问题与调用包含部分视图的视图的所有控制器有关,必须具有从快速添加处理表单提交的Action方法.即使我将处理信息的逻辑分解成一个单独的控制器,并且从每个其他控制器调用该方法,似乎是一个负担,每个控制器调用具有可重用控件的视图必须具备这些知识. 我查看的另一个选项是使可重用的控件总是提交给特定的操作方法/控制器,但是该控制器无法知道如何针对调用包含的视图的特定控制器适当地重新填充模型可重复使用的控制(在步骤4). 我知道MVC 2中有一个子控制器(来自这个问题ASP.NET MVC – Contained User Controls),但是由于还没有,所以在保持DRY的同时,最大限度地构建代码以实现最大的可重用性? 是否有一个替代方法是让所有控制器调用使用可重用控件(具有上述特征)的视图,必须有一个Action方法来处理来自控件的信息? 解决方法在你的帖子的最后,你问“有一个替代方法,必须拥有所有的控制器…必须有一个操作方法来处理来自控件的信息”该问题的答案是编写一个自定义模型绑定器.您的自定义模型绑定器可以负责将来自表单控件的值填充到所有控制器使用的模型或属性中.通常,您要将验证与模型绑定分开,但是没有理由不能组合它们. 我强烈推荐6 Tips for ASP.NET MVC Model Binding更深入地讨论这个主题以及一些很好的参考. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – Mono vhost配置错误:地址已经在使用
- 在ASP.Net图表控件上隐藏网格线
- asp.net-mvc – 使用LINQ的多个或单个存储库
- asp.net+jquery ajax无刷新登录的实现方法
- asp.net – 对齐和填充为asp:CheckBoxList
- asp.net – .NET Web API HttpResponseMessage模式?
- asp.net – 如何在网格行中显示枚举描述或名称?
- asp.net – Visual Studio 2008,2010或2012(v11)是否写入使
- 为ASP.NET/ASP.NET MVC配置IIS(Windows 7)3
- asp.net-mvc – 如何在不给每个控制器放置注释的情况下授权
- ASP.NET Core 1.0 ConfigurationBuilder().AddJs
- asp.net-mvc – 如何调试Minification失败 返回未
- asp.net – 隐藏字段vs viewstate
- .net – 如何获得程序集最后修改日期?
- asp.net-mvc – MVC中的部分视图
- asp.net-mvc-3 – MVC3 – 使用ViewModel插入 –
- asp.net-mvc – ASP.NET MVC中的非字符串角色名称
- asp.net-mvc – MVC Razor获取月份名称
- asp.net – dbo.TempGetStateItemExclusive3重复
- asp.net – 在IHTTPHandler中以编程方式创建Syst
