gpt4 book ai didi

asp.net - 如何在 ASP.NET vNext MVC 6 (beta1) 项目之间共享 View ?

转载 作者:行者123 更新时间:2023-12-05 01:01:56 24 4
gpt4 key购买 nike

在 MVC5 中,可以使用 Razor Generator ( http://razorgenerator.codeplex.com ) 之类的工具在项目之间共享 View (Razor)。
如何在 vNext 中实现相同的目标?我的 View 无法立即识别(包含 View 的项目在 project.json 中列为依赖项)。
InvalidOperationException: The partial view '~/Views/Authentication/_LogInForm.cshtml' was not found. The following locations were searched:
~/Views/Authentication/_LogInForm.cshtml

最佳答案

我们终于设法解决了这个问题。不过也不是很容易...

  • 您需要将 View 作为资源嵌入到您将依赖的项目中。为此,请添加 "resources": [ "**/*.cshtml" ]到它的 project.json。
  • 您需要创建一个 IFileSystem 来查看这些资源而不是查看磁盘。这是棘手的部分。为了便于理解,我把它放在了 Pastbin 上:http://pastebin.com/aNfq5hNi
  • 您需要在 Startup.cs 中注册此 IFileSystem:
  • //...
    public void Configure(IApplicationBuilder app,IHostingEnvironment env,ILoggerFactory loggerfactory)
    {
    //Enable use of views in other assemblies
    IOptions<RazorViewEngineOptions> razorViewEngineOptions=app.ApplicationServices.GetService<IOptions<RazorViewEngineOptions>>();
    razorViewEngineOptions.Options.FileSystem=new MVCAsset.EmbeddedExpiringFileInfoCache(
    razorViewEngineOptions,
    app.ApplicationServices.GetService<ILibraryManager>()
    );
    //...
    }
    //...

    注意:这实际上已针对 MVC6 RC1 进行了测试和工作,我没有针对 BETA1 进行测试。

    关于asp.net - 如何在 ASP.NET vNext MVC 6 (beta1) 项目之间共享 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27343387/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com