目前在做一个MVC插件式设计。但是关于虚拟路径和Razor引擎实在是搞不定了。
先说下我的思路。
目前设计的是每个插件DLL中包含了控制器,模型,视图等。我的视图是嵌入到DLL中的。所以我在重写ViewEngin的FindView与FindPartialView时查找的是程序集中的视图。这一步能够找到。
但是问题出在如果此视图仅仅是静态页面等,就不会有问题。但是如果一绑定Model就会报一个
“未创建找到的xxxxxx的视图”。也就是说它找到视图了,只是创建该视图时出错。这是属于什么样的问题。
如果知道的还望指点一二。
MVC 3 无需再使用Razor Generator的,只需要直接编译成嵌入资源。
你可以检查以下几个地方:
属于引用问题,你要在生成的时候搜索该DLL的引用,都加载完了再生成视图
你好!是不是在生成视图的时候有一个事件,在此事件中将需要的程序集加载到编译过程中就可以对嘛?
@ShowStyle: RazorBuildProvider Razor视图引擎的东西,我现在还没看完,
他有2个方法 AddVirtualPathDependency 和.AssemblyBuilder.AddAssemblyReference
应该是用来处理这个引用问题的,我前两天刚看到这,后面的还不清楚,你得自己研究下,
MVC的插件式框架,我也在学,不过我是直接在看Orchard源码.
你既然要做这个,推荐你也看下,非常牛逼
@吴瑞祥: 好的。非常感谢,我是看Nopcommerce的,不过这个框架很庞大。哎,水平有限。不过你给的思路实在是我的救命稻草,非常感谢
你那个razor要把它生成cs文件,编译过去,才能读取到。平常的razor文件是没有编译过去的。
怎么做?
@ShowStyle: 也就是Asp.Net MVC 项目预编译View的方法,你可以参考Razor Generator