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

江枫思渺然 提交于 2020-01-23 01:12:09

问题


I know ASP.NET MVC 3 doesn't support area reuse, which would be very handy for, say, user admin areas of web applications, but how about partial views?

Say I have Pager "control" as a Razor (or WebFormViewEngine, it doesn't matter) partial view which I can easily reuse inside my MVC application.

Is it possible to reuse it in multiple MVC applications other than by creating a partial view in the new application and copy-pasting the code?


回答1:


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.




回答2:


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.



来源:https://stackoverflow.com/questions/5239361/is-it-possible-to-reuse-partial-views-on-multiple-projects-in-asp-net-mvc

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