Is it possible to reuse partial views on multiple projects in ASP.NET MVC?

偶尔善良 提交于 2019-12-04 10:56:51
Darin Dimitrov

There is nothing buit-in the framework that allows you to do this. You may take a look at MVCContrib portable areas which allows you to embed and reuse views between multiple ASP.NET MVC applications. You may also find the following blog post useful.

Disclaimer: both those approaches rely on writing a custom VirtualPathProvider which doesn't work with precompiled ASP.NET applications. So if you intend to precompile your application before shipping don't use those. Personally I am in this situation and what I ended up doing is writing a custom NuGet package which contains all the necessary views and assemblies containing their respective view models and all that a developer has to do is to install the NuGet package from a centralized location withing the intranet/internet.

In the O'Reilly book "Programming ASP.NET MVC 4" by Jess Chawick there is a chapter describing what you need. "CHAPTER 15 - Reusable UI Components"

Basically you create Class Library project with your views. You have to install RazorGenerator and set it as Custom Tool in the properties of the .cshtml files. This will generate C# code from the .cshtml files. Now to locate the views outside your standard search path in your MVC application you have to use the Nuget Package PrecompiledMvcEngine.

The book is very well written and you can find step by step info how to do it.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!