如何创建ASP.NET MVC区作为一个插件DLL?(How to create ASP.NET M

2019-07-30 10:24发布

这是我想要什么来实现的,我想ASP.NET MVC的地区分离纯单个DLL。

  1. Blog.DLL
  2. Forums.DLL
  3. FAQ.DLL

他们每个人都是个体ASP.NET MVC区,拥有自己的默认CSHTML或ASPX页面。 安装,迁移和维护大量的页面,包括资源,JavaScript和等等都是长期来看真正的痛苦。 由于其中大部分将难以改变。

我最后的网站会是这样。

\MvcApplication
   \bin
      \MvcApplication.bin
      \Blog.dll
      \Forums.dll
   \Controllers
      \..
   \Models
      \..
   \Views
      \..
   \Global.asax
   \Web.config

不添加任何东西,只是删除Blog.dll,我的应用程序应该支持/博客和它的所有页面。 如果我想自定义的东西,比我可以添加区,和只添加CSHTML页..

\MvcApplication
   \bin
      \MvcApplication.bin
      \Blog.dll
      \Forums.dll
   \Areas
      \Blog
          \Views
              \Shared
                  \BlogLayout.cshtml <-- this will override the look
   \Controllers
      \..
   \Models
      \..
   \Views
      \..
   \Global.asax
   \Web.config

这将有助于重用ASP.NET区插件,通过简单地丢弃在bin文件夹中的DLL。 然而web.config文件可能需要一些变化,但最有可能的,我们将保存在数据库中,仅会在web.config中“实体框架连接字符串”需要的东西配置值。

我的挑战(问题)

  1. 可能吗? 它看起来确实给我,但会不会有任何反射/权限问题?
  2. 如何包括一个DLL内CSHTML / ASPX看法? 也许编译的版本? 我见过几个CodePlex上的文本模板基于视图引擎,但我对如何实际使用它们有点困惑。
  3. 而且我怎么视图引擎首先检查物理目录文件存在与否,然后看看CSHTML / ASPX DLL本身的资源文件中?

Answer 1:

你可能需要看看下面的文章 ,其说明了如何自定义的VirtualPathProvider可以按顺序用于检索被嵌入到单独的程序集作为资源剃刀意见。



Answer 2:

也许值得看的从mvccontrib便携领域。 我没有用他们,因为MVC 2,但发现通过它们与MVC 3有一些问题有人以下SO问题,有一些可能的解决方案: ASP.NET MVC 3,剃刀视图和便携式领域



Answer 3:

MvcCodeRouting支持你想要什么,以及许多其他有趣的东西。 看看这篇文章关于ASP.NET MVC插件。



文章来源: How to create ASP.NET MVC area as a plugin DLL?