在 ASP.NET MVC Web 应用程序中包含预编译的视图

Posted

技术标签:

【中文标题】在 ASP.NET MVC Web 应用程序中包含预编译的视图【英文标题】:Including Pre-Compiled Views in an ASP.NET MVC Web Application 【发布时间】:2012-11-27 12:30:17 【问题描述】:

Reference

请参阅上面的博客。我正在尝试在 MVC 3 中创建用户控件的类库。 参考上面的博客,我在其中创建了类库写入视图。 但问题是如何在我的消费者应用程序中将该视图注册为部分视图。 在 nuget 中找不到 PrecompiledMvc​​Engine。它将在 asp.net MVC 应用程序中注册预编译视图。

举个例子怎么做?

【问题讨论】:

【参考方案1】:

基本上你需要注册一个虚拟路径提供者

    您必须在 Global.asax Application_Start 处理程序中注册一个 VirtualPathProvider。 您必须使用特殊路径调用 DLL 中的视图,如下所示: return View("~/foldernameofdlllocation/nameofdll.dll/nameofview.cshtml");

为了帮助追踪您在 dll 中的视图位置,请使用反射器或 Telerik 的 JustDecopile(免费)。

这篇博文可能对您有用:

http://www.wynia.org/wordpress/2008/12/aspnet-mvc-plugins/

这个问题也可能有用:

Using VirtualPathProvider to load ASP.NET MVC views from DLLs

博文中的代码示例:

http://www.wynia.org/download/aspnetmvc-plugin-poc/POC.MVCPluginDemo.zip

【讨论】:

以上是关于在 ASP.NET MVC Web 应用程序中包含预编译的视图的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET MVC jQuery 自动完成与页面中包含的脚本中的 url.action 助手

在 ASP.NET MVC Html.ActionLink 中包含锚标记

如何使用 .Net 4.0 中包含的 HttpClient 类将文件上传到在 IIS Express 中运行的 Asp.Net MVC 4.0 操作

ASP.NET MVC:在 App_Code 中包含扩展方法的文件必须具有构建操作“无”吗?

如何在 ASP.NET 中使用 log4net 在日志文件中包含 SessionID?

如何在 .Net Web API 中包含 System.Web.Http.Cors 参考 dll