在asp.net MVC中是否有创建复杂控件的新模型或最佳实践?
您是使用代码隐藏还是内联来镜像您的视图页面?
答案 0 :(得分:3)
我的模特是这样的:
当有一个我需要多次使用的视图元素时,我倾向于使用部分视图。或者如果我需要在视图中显示多个复杂对象。
当我需要一个“可重复使用的小部件”时,我使用期货装配中的RenderAction。它拥有自己的控制器,处理比部分视图更复杂的逻辑更好。
最后,我倾向于为我可能在其他项目中使用的东西(如分页链接等)编写Html Helper方法。
答案 1 :(得分:1)
我会使用局部视图来处理复杂的事情。查看this article
答案 2 :(得分:1)
MVC中的控件通常没有(任何)代码。您使用PartialViews作为ascx控件,向它们传递模型并显示模型的内容。
你可以在mvc中创建自定义控件,然后编译成一个可以在项目等之间移动的dll,这些稍微复杂一点,但实际上它们像部分视图一样吐出html。
你也可以创建非常酷的jQuery插件,他们可以根据模型吐出html。
因此,典型的mvc视图可能包含多个部分视图,每个部分视图专用于模型或模型层次结构。
部分视图还可以显示部分视图,因此您可以将复杂模型发送到局部视图,而局部视图又渲染其他部分视图,每个视图都处理模型中更原子的部分。
答案 3 :(得分:0)
我一直在编写很多自己的HtmlHelper扩展函数。今天记录的11月会议http://www.c4mvc.net/给出了HtmlHelper扩展函数中放置的控件类型代码的一些很好的例子。录音应尽快上线。
您可能还想查看Telerik Extensions for ASP.NET MVC.它们是开源的,所以即使您不使用它们的控件,您也可以通过查看ASP.NET MVC中的控件来深入了解它们。商业控制供应商如何处理这个问题。
答案 4 :(得分:0)
来自PHP转身的webforms转变为ASP.NET MVC背景,我发现自己更多地依赖于基本的html / css / javascript。
我从来都不喜欢控件,即使是使用webforms,因为与js / html / css相比,它们总是变得混乱。