我正在寻找构建一个ASP.NET MVC应用程序,其中许多屏幕将具有多个不同的视图。理想情况下,用户可以以门户网站样式将他们需要的项目带入工作区页面。即使这是不可能的,也需要为各种类型的用户以各种方式加入一些共同的项目:传统继承难以实现的目标。
在我看来,URL结构只允许一个控制器实例化,并且为此一次调出一个视图(并且只有一个) - 不在页面上放置多个视图。在这里搜索我已经看到了对MVC Contrib子控制器的引用,但我在http://www.codeplex.com/MVCContrib网站上看不到它们以便进一步检查它们?
分控制器是否可行?如果是这样,我现在在哪里找到它们。如果没有,你会建议什么?
答案 0 :(得分:2)
如果您想坚持使用asp.net mvc,那么您可以使用部分视图,它将/应该为您提供“Web部件”类型功能,这听起来像您想要的。然后,您可以根据主页面视图上的权限等限制您想要查看的部分视图(这可以通过基本控制器类或其他方式公开)。
我已经做了一些搜索,并提出了一些你可能会觉得有用的链接......
Jeffrey Palermo - 谈论模仿部分观点
Rob Conery - 使用asp.net mvc的用户控件
mikesdotnetting.com - ASP.NET MVC部分视图和强类型自定义ViewModels(不是全部阅读,但它看起来非常有用)
希望这有帮助。
答案 1 :(得分:1)
看看期货装配及其RenderAction()的实现。虽然它不是纯粹的MVC,但它们基本上可以用作小部件。它们从视图中调用并通过一个单独的控制器,然后呈现局部视图。这听起来像你可能正在寻找的。 p>
这是一个例子......
//Various view data
<div id="user-info">
<% Html.RenderAction("UserInfo"); %>
</div>
//Rest of view data
这将在当前控制器上查找名为“UserInfo”的操作方法。然后该控制器可以执行它需要做的事情,并将其结果发送到将代替Html.RenderAction()呈现的部分视图。
答案 2 :(得分:0)
控制器不受任何特定视图的约束。根据您的业务逻辑,控制器/操作可以显示您想要的任何视图。
修改强> 您可以尝试编写HtmlHelpers和部分视图。这些是您应该使用的,而不是分别使用webforms的服务器控件和用户控件。
答案 3 :(得分:0)
听起来你正在做两件不同的事情:
修改强>
您要做的事情需要sharepoint和asp.net mvc。可以将这些组合起来,请参阅:Using Asp.Net MVC with SharePoint