【问题标题】:How to make asp.net core application to look for view files in the current project?如何使asp.net核心应用程序在当前项目中查找视图文件?
【发布时间】:2018-02-19 14:50:47
【问题描述】:

我的解决方案中有两个项目。 其中一个(ma​​in)是应用程序入口点。另一个 (api) 处理其中一个业务流程,在 99% 的情况下需要 JSON 通信。 但是,对于 1% 的情况,我需要完整的 HTML 响应,这就是问题所在。我创建了一个控制器和一个视图,但似乎应用程序在 ma​​in 项目中查找该视图。

我希望它在解决方案中使用以下文件结构:

/Main/ (and the content of main application) /API/Controllers/TestController.cs (contains definition of Action()) /API/Views/Test/Action.cshtml

但似乎我需要将视图从/API/Views/Test/Action.cshtml 复制到/Main/Views/Test/Action.cshtml/Main/Views/Shared/Action.cshtml。这分裂了我的应用程序的内部逻辑:(

【问题讨论】:

标签: c# asp.net-core razor-pages


【解决方案1】:

您可以使用 DLL 保留您的视图。 只需确保在根位置的构建/部署副本“视图”文件夹。

【讨论】:

    【解决方案2】:

    您不能(至少目前)在 ASP.NET Core 项目之间共享视图。在ASP.NET Core 2.1(预览版)中,您将能够通过将视图添加到两个项目都可以引用的类库来共享视图。

    类库中的 Razor UI

    ASP.NET Core 2.1 将使构建基于 Razor 的 UI 并将其包含在库中并在多个项目之间共享变得更加容易。新的 Razor SDK 将支持将 Razor 文件构建到类库项目中,然后可以将其打包到 NuGet 包中。库中的视图和页面将被自动发现并且可以被应用程序覆盖。通过将 Razor 编译集成到构建中,应用启动时间也显着加快,同时仍允许在运行时快速更新 Razor 视图和页面,作为迭代开发工作流程的一部分。

    目前,您只需复制每个项目中的视图并将其放在您的路线图上,以便在 2.1 发布后将它们分解出来,然后您就可以升级了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多