asp.net-core - 在 .NET Core Razor 页面和 AJAX 中设置部分页面( View )搜索路径

标签 asp.net-core visual-studio-2019 razor-pages partial-views asp.net-mvc-partialview

我在 .NET Core 3.1 应用中设置部分页面( View )的“搜索路径”时遇到问题。当我放置 _SomePartialPagePartial.cshtml在默认搜索路径目录(/Pages/Shared/或/Views/Shared/)中,或者在与调用 Razor 页面相同的目录中,AJAX 脚本调用 public async Task<PartialViewResult> OnPostSomeMethodPartial(string ID, string ID2, ...)并返回 return Partial("_SomePartialPagePartial", SomeDataModel) 的 View 正如预期的那样。

但是,当我放置_SomePartialPagePartial.cshtml时文件位于另一个目录中,Razor 页面找不到它。

我想将部分页面放在另一个目录中的原因是出于组织目的。我正在使用区域来组织项目,并希望将部分页面保留在某些目录中。比如我的结构是:

Areas
  Area1
    Models
    Pages
    Partials
    Services
  Area2
    Models
    Pages
    Partials
    Services
etc.

我想向某些区域(即 Areas/Area2/Partials)添加一个“Partials”目录,并将相关的部分页面放在那里。当我尝试从 Areas/Area1/Pages 中的 Razor 页面引用 Areas/Area2/Partials 中的部分页面时,就会出现复杂性。在这种情况下,Razor 页面无法找到部分文件。

我已经尝试在 Startup.cs 文件中附加搜索路径(如 https://www.learnrazorpages.com/razor-pages/partial-pages 中所述),但这似乎不起作用? options.PageViewLocationFormats通过 services.Configure<RazorViewEngineOptions>(options => ... 添加的路径不会附加调试器中验证的路径搜索数组。

也许最好的解决方案是允许直接在调用中设置部分文件的目录(即 Partial("<optional path>/_SomePartialPagePartial", SomeDataModel)Partial("_SomePartialPagePartial", <optional path>, SomeDataModel) )。增强功能?

无论如何,任何有关如何解决此问题的帮助/建议将不胜感激......:)

附注我正在使用最新/更新版本的 VS 2019(版本 16.11.3)。

最佳答案

您可以尝试使用下面的代码。

public IActionResult OnPostSomeMethodPartial(string ID, string ID2, ...)
{
    // var model = new yourModelClass();
    // if you want use model, you can use like below
    // return PartialView("~/Areas/Area1/Partials/testPartialsPage.cshtml",model);
    return PartialView("~/Areas/Area1/Partials/_SomePartialPagePartial.cshtml");
}

有关更多详细信息,您可以引用以下帖子。

Application can't find view when using areas

关于asp.net-core - 在 .NET Core Razor 页面和 AJAX 中设置部分页面( View )搜索路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69288980/

相关文章:

c# - 如何按角色进行不同登录 ASP.NET Core 2.2

c# - 在列上创建唯一约束

c# - Visual Studio 忽略 #if DEBUG/RELEASE 范围内的代码,并且不检查错误或自动完成

visual-studio - 在 Visual Studio 2019 中未发现单元测试

c# - 从 Bootstrap 模式弹出窗口提交数据

c# - 如何在asp.net core中设置linux nlog文件夹

.net - EF Core 添加迁移构建失败

python - Visual Studio 2019 找不到 python 测试(pytest 或 unittest)

razor - 在 .Net Core 中导航到另一个文件夹中的页面

C# Razor 页面 BindProperty 属性不起作用