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