【问题标题】:Partial Views in a Razor Class Library aren't found未找到 Razor 类库中的部分视图
【发布时间】:2019-02-26 07:42:10
【问题描述】:

我有一个简单的 RCL,结构如下:

/Pages /Shared/ _Footer.cshtml

内容很简单:

<h3>  _Footer.cshtml partial view.</h3>

我还有一个具有相同文件夹结构的 ASP.NET Core Web App 项目:

/Pages _ViewImports.cshtml -ViewStart.cshtml /Shared _Layout.cshtml

在布局文件的某处我引用了局部视图:

&lt;partial name="_Footer" /&gt;

问题来了:

  • 如果我将 RCL 的项目引用添加到 Web 应用程序,则会找到部分视图并且页面呈现正常。
  • 如果我从 RCL 制作 Nuget 包,将其添加到本地 Nuget 源并添加对包的引用,将找不到局部视图。

The partial view '_Footer' was not found. The following locations were searched: /Pages/_Footer.cshtml /Pages/Shared/_Footer.cshtml /Views/Shared/_Footer.cshtml

添加项目引用和 Nuget 引用有什么区别?我已经验证 Nuget 包确实包含 Class Lib 的默认程序集和视图程序集。

【问题讨论】:

  • 这个问题有什么进展吗?我看到了同样的行为。引用 Razor 类库项目并找到页面路由,使用同一项目的 NuGet 包无法找到页面路由。期待这里的任何回应。
  • 很遗憾,没有。
  • 我找到了一个可能的答案。可能只是您的 NuGet 包被缓存了。您可以尝试从命令提示符运行以下命令:dotnet nuget locals all --clear 我在以下 url 上有一个示例解决方案,我可能会在几个月后将其删除,所以希望这会短期的帮助。 link

标签: razor razor-pages


【解决方案1】:

我也遇到了同样的问题,解决了从库区写完整路径,例如:

在我的图书馆里:

区域/页脚/页面/_footer.cshtml

在我的 UI Proyect 中,我将其称为:&lt;partial name="~/Areas/Footer/Pages/_footer.cshtml" model="My Model instance"/&gt;

希望对你有帮助

【讨论】:

    【解决方案2】:

    根据文档 (https://docs.microsoft.com/en-us/aspnet/core/razor-pages/sdk),我认为您可以使用 IncludeRazorContentInPack 将 .cshtml 文件包含在 NuGet 包中(默认为 false)。

    【讨论】:

      【解决方案3】:

      我发现如果您使用dotnet pack 而不是nuget pack,它会起作用。 dotnet pack 包信息的注意事项现在从 csproj 而不是 nuget 规范文件中读取。

      【讨论】:

        【解决方案4】:

        在我的情况下,我什至无法使其在操作人员说它确实有效的情况下工作:

        如果我将 RCL 的项目引用添加到 Web 应用程序,则部分视图 找到并且页面呈现正常。

        我刚刚收到未找到部分视图的标准错误消息(即使搜索的路径是正确的)。

        在敲了几下之后,我通过将以下 xml 块添加到两个 .csproj 文件来解决了这个问题:

        1. RCL:例如RazorUIClassLib.csproj
        2. Web 应用程序:例如WebApp1.csproj
        <ItemGroup>
            <PackageReference Include="Microsoft.AspNetCore.App" />
        </ItemGroup>
        

        【讨论】:

          猜你喜欢
          • 2015-04-03
          • 1970-01-01
          • 1970-01-01
          • 2017-11-21
          • 1970-01-01
          • 1970-01-01
          • 2011-06-27
          • 1970-01-01
          相关资源
          最近更新 更多