我知道ASP.NET MVC 3不支持区域重用,这对于Web应用程序的用户管理区域来说非常方便,但部分视图怎么样呢?
假设我将Pager“控制”作为Razor
(或WebFormViewEngine
,无关紧要)部分视图,我可以在MVC
应用程序中轻松重复使用。
除了在新应用程序中创建局部视图并复制粘贴代码之外,是否可以在多个MVC应用程序中重用它?
答案 0 :(得分:7)
框架中没有任何东西可以让你这样做。您可以查看MVCContrib portable areas,它允许您在多个ASP.NET MVC应用程序之间嵌入和重用视图。您可能还会发现following blog post有用。
免责声明:这两种方法都依赖于使用预编译的ASP.NET应用程序编写不起作用的自定义VirtualPathProvider 。因此,如果您打算在发货之前预先编译您的应用程序,请不要使用它们。我个人在这种情况下,我最终做的是编写一个custom NuGet package,其中包含所有必要的视图和包含各自视图模型的程序集,开发人员必须做的就是从集中安装NuGet包内部网/互联网的位置。
答案 1 :(得分:4)
在O' Reilly的书"编程ASP.NET MVC 4"通过Jess Chawick,有一章描述了你的需求。 "第15章 - 可重用的UI组件"
基本上,您可以使用视图创建类库项目。您必须安装RazorGenerator并将其设置为.cshtml文件属性中的自定义工具。这将从.cshtml文件生成C#代码。现在,要在MVC应用程序中找到标准搜索路径之外的视图,您必须使用Nuget Package PrecompiledMvcEngine。
这本书写得很好,你可以找到一步一步的信息如何做。