![]() |
1
6
一般来说,我同意用户控件在封装UI方面是很好的,但我认为MVC中并没有太大的变化。如果我记得在经典的ASP.NET项目中正确地重新使用用户控件是一件痛苦的事情,而且从来不是真正创建可重用组件的最佳方法。您为经典ASP.NET购买的大多数UI工具包都没有提供用户控件,它们基本上提供了服务器控件和JavaScript控件。 在您的示例中,我可能会创建或找到一个jquery(或选择的UR框架)插件,该插件在客户端执行了您想要的操作。您还可以围绕它构建一个C包装器,类似于Telerik对一些jQueryUI控件所做的操作。我认为这个词 代码隐藏 甚至 视图状态 你进入MVC的次数越多,你的词汇表就会消失。 如果你看看MVC的开源项目是什么,你会从你应该做什么得到你的答案。
|
![]() |
2
2
|
![]() |
3
2
考虑到其他人的有益回答,我会主动回答自己的问题。 在我看来,在MVC中模拟用户控件的关键困难在于,它们横切了MVC要分离的关注点。在我的示例中,从/到日期选择器usercontrol包含模型、视图、控件和交互元素。用户控件将所有这些捆绑在一起的能力正是它们不适合MVC的原因。 这意味着在MVC中创建psuedo用户控件需要四个独立的部分:
ModelBinder很重要,因为它处理从用户返回的数据。如果没有它,每个想要在其任何视图中显示“到/从”日期选择器的控制器都必须知道如何组装六个PostData字段,以及如何处理它们是否无效或某些字段丢失。 |
![]() |
4
1
我能想到两种方法。一个局部视图,虽然这并不能很好地从一个应用程序转移到另一个应用程序,因为你正在移动的ASCX文件。不是很痛,但不是我的味道。 我更喜欢使用 网络控件 . 它们在MVC中非常简单,您所需要做的就是引用项目中的库,也可能引用配置文件中的库。 |
![]() |
5
0
我认为有些答案遗漏了控件的回发功能。您可以处理的一种方法是在呈现局部视图时通过VIEWDATA传递任何一般信息。这样就可以回到自己的控制中,反过来又可以重定向到urlrefer。 它有点乱,使用urlrefer会带来安全风险。但这是解决问题的一种方法 |
![]() |
6
0
您可以创建一个 jQuery plugin . |
![]() |
7
0
作为在ASP.NET WebForms中提供的用户控件,MVC提供了许多方法来使控件和代码可以在其他应用程序中重用。 使用分词 如果您的部分代码有一些C逻辑,并使用razor/aspx代码呈现HTML,那么将它们维护在razor文件中是BST。 将javascript功能作为插件写入 如果你维护你的代码,并把它写得和其他应用程序一样好,那么这对你来说将是一个巨大的优势。下次当你在其他应用上工作时,只需打开这个解决方案,复制并修改它。编写可以用作插件的javascript代码可能需要更多的头脑风暴。 将代码编写为单独的C库 如果某些代码对于您制作的每个应用程序都太常见,例如,您编写了一个成员身份验证系统或在您制作的每个应用程序中使用的某个全局函数(C),然后将它们保存在单独的解决方案中,以便将来每当您尝试制作新的应用程序时,都可以在您制作的其他应用程序中使用。 |
![]() |
Haim Ohayon · 这些链接之间有什么区别? 2 年前 |