加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

如何在ASP.NET vNext MVC 6(beta1)项目之间共享视图?

发布时间:2020-12-16 06:38:45 所属栏目:asp.Net 来源:网络整理
导读:在MVC5中,可以使用Razor Generator( http://razorgenerator.codeplex.com)之类的工具在项目之间共享Views(Razor). 如何在vNext中实现相同的功能?我的视图未被开箱即用(包含视图的项目在project.json中列为依赖项). InvalidOperationException:找不到部分视
在MVC5中,可以使用Razor Generator( http://razorgenerator.codeplex.com)之类的工具在项目之间共享Views(Razor).
如何在vNext中实现相同的功能?我的视图未被开箱即用(包含视图的项目在project.json中列为依赖项).

InvalidOperationException:找不到部分视图’?/ Views / Authentication / _LogInForm.cshtml’.搜索了以下位置:
?/查看/认证/ _LogInForm.cshtml

解决方法

我们终于设法解决了这个问题.虽然不太容易……

>您需要将视图作为资源嵌入到您将依赖的项目中.为此,请将“resources”:[“** / * .cshtml”]添加到其project.json中.
>您需要创建一个IFileSystem来查看这些资源,而不是查看磁盘.这是棘手的部分.我把它放在pastbin上,用于lisibility:http://pastebin.com/aNfq5hNi
>您需要在Startup.cs中注册此IFileSystem:

// …
????public void Configure(IApplicationBuilder app,IHostingEnvironment env,ILoggerFactory loggerfactory)
????{
????????//允许在其他程序集中使用视图
????????IOptions< RazorViewEngineOptions> razorViewEngineOptions = app.ApplicationServices.GetService< IOptions< RazorViewEngineOptions>>();
????????razorViewEngineOptions.Options.FileSystem = new MVCAsset.EmbeddedExpiringFileInfoCache(
????????????razorViewEngineOptions,
????????????app.ApplicationServices.GetService< ILibraryManager>()
????????);
????????// …
????}
????// …

注意:这实际上已经过测试并适用于MVC6 RC1,我没有测试过BETA1.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读