2015-06-27 68 views
1

我正在制作一些可重复使用的MVC功能,并希望在DLL中包含视图以使它们可以从多个MVC实现中访问。我正在与MVC 5合作,以防它应该如何实现。MVC视图管理

我已经对此进行了一些研究,并发现了一些可能的方法,但许多文章看起来已经过时了,因为它们适用于早期版本的MVC。例子包括:

的最终目标是拥有一个类似的项目结构:

- Shared MVC Module 
    - Includes Views for Module features 

- First MVC Implmentation 
    - Consumes Shared MVC Module 
- Second MVC Implmentation 
    - Consumes Shared MVC Module 

主要推荐的方法是什么?一个简单的时尚?我们目前正在复制周围的意见,但希望有一个更好的系统。

+0

xcoping DLL vs .cshtml文件究竟有什么区别? – beautifulcoder

+0

我们希望在解决方案中引用项目和.cshtml文件以进行调试,而不是执行文件副本。 –

+2

尽管不是直接用于'views'和cshtml,但最简单的方法是使用HtmlHelpers,它可以很容易地(/被设计成)嵌入到DLL中,并与NuGet等一起部署。但是,您在代码隐藏中编写html 。这就是MVC中的所有'EditorFor'等编写方式。那取决于观点的复杂程度。 –

回答

1

我面临同样的问题,我找到的最佳解决方案是RazorGenerator

它由两个部分组成:

  1. 一个Visual Studio扩展,将预编译的意见。这样,它们将作为编译类包含在DLL中。
  2. 一个运行时DLL,它提供了一个可以使用这些预编译视图的视图引擎实现。

我一直在少数项目中使用它,它工作得很好。特别是,我喜欢这样一个事实,即如果我在常规Razor引擎的之后添加RazorGenerator视图引擎,我可以覆盖使用它们的项目中的预编译视图,这提供了相当大的灵活性。

+0

我会研究这个选项。这听起来像它可能正是我们正在寻找的。 –