如何在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.