什么相当于MVC 3中的ASCX-Code Behind?

时间:2011-07-26 22:31:12

标签: asp.net-mvc-3 razor

我从来没有使用ASP.NET MVC 3构建一个大型项目,但是我试图真实地构建和使用框架,因为在我出去疯狂狂欢的Html Helpers之前,我想知道在MVC 3上创建“自定义控件”的最佳方法是什么。

这是一个简单的例子:我可能有一个动态生成的导航菜单。菜单项将根据您在网站上的位置,一些静态菜单项,一些基于数据库的动态菜单等来决定。

我在看到NavMenu与视图隔离时,我看到的两种方法是创建部分视图或Html助手。

部分视图似乎是要走的路,因为我可能有100个这样的小组件。但是,部分视图(根据我的理解)应该只关注表示层而不是模型逻辑。同时,我不希望主视图的模型为每个局部视图包含100个子模型。

我应该把东西放在ViewBag上吗?我是否应该使用基本控制器来处理使用我需要呈现该局部视图的任何内容来填充ViewBag / ViewData?或者,正确的方法是创建HtmlHelpers并使用C#生成所有HTML?

我担心的是代码的可维护性,性能以及能够让设计师访问产品以使用相同内容的不同视觉表示。

换句话说,什么相当于MVC 3中的ASCX + Code-Behind?

1 个答案:

答案 0 :(得分:1)

您应该在单独的Menu控制器中进行子操作,将数据收集到模型中并返回部分视图 您可以将相同的模型用于不同的操作。