【问题标题】:Include razor views in a shared project在共享项目中包含剃刀视图
【发布时间】:2019-02-17 12:21:57
【问题描述】:

我有一个网格的 CSS、Javascript、类和部分视图,有很多排序和过滤选项。我想将它全部包含在 Visual Studio 的共享项目中,以便我可以在不同的应用程序中重用它。

网格的 CSS、Javascript 和类在共享项目中正常工作。部分观点没有。我在部分视图上遇到很多错误,我不确定如何从我的网络应用程序的视图中引用部分视图。

是否可以在共享项目中包含视图?如果可能,我该怎么做?谢谢!

【问题讨论】:

  • 这个问题stackoverflow.com/questions/31920735/…做你想做的事吗?
  • 这几乎就是我想要做的。我在网上尝试了几个 RazorGenerator 示例,但无法让它们工作。当我尝试提供完整路径并使用 ../ 时,我收到一条错误消息,指出我无法使用前导 .. 退出顶级目录。

标签: c# asp.net-mvc razor reusability


【解决方案1】:

RCL

使用 Razor 类库 (RCL) 可能是您所想的一种方法。 RCL 对 ASP.NET 来说是相当新的,它提供了一种轻松共享和重用 razor 视图的方法。

请参考以下文档:

https://docs.microsoft.com/en-us/aspnet/core/razor-pages/ui-class?view=aspnetcore-2.1&tabs=visual-studio

使用 RCL,您可以根据需要覆盖 Web 项目中的共享视图。

应用程序可以包含 RCL 并覆盖它的视图和页面 包含。当在两者中都找到视图、部分视图或 Razor 页面时 Web 应用程序和 RCL,Web 中的 Razor 标记(.cshtml 文件) 应用程序优先。

共享源代码

您还可以使用版本控制共享 razor 源代码,以确保每个项目具有相同的视图。我个人不会推荐这个,但它是一种选择。

预编译视图

由于您不使用 .NET Core,另一个选择是预编译您的视图。您可以使用以下文章获取说明:

https://www.codeproject.com/Articles/1169354/Pre-compiled-Razor-View-in-ASP-NET-MVC

获得保存已编译视图的 DLL 后,您可以轻松地将其作为参考包含在其他项目中。

其他选项

查看此问题中的答案以获取更多选项:

Sharing Razor views across projects

【讨论】:

  • 我没有使用 .NET Core,所以我不认为 RCL 是一种选择。我会在链接中查看其他选项。
  • @t_m27 另一种选择是预编译您的视图。我编辑了答案以将其添加到其中。
猜你喜欢
  • 1970-01-01
  • 2011-12-29
  • 2016-06-25
  • 1970-01-01
  • 2018-10-30
  • 1970-01-01
  • 1970-01-01
  • 2012-06-14
  • 2018-08-30
相关资源
最近更新 更多