在 .NET Core Razor Pages 和 AJAX 中设置部分页面(视图)搜索路径
Setting Partial Page (View) search path in .NET Core Razor Pages and AJAX
我在 .NET Core 3.1 应用程序中设置部分页面(视图)时遇到问题'Search Path'。当我将 _SomePartialPagePartial.cshtml
放在默认搜索路径目录(/Pages/Shared/ 或 /Views/Shared/)或与调用 Razor 页面相同的目录中时,AJAX 脚本调用public async Task<PartialViewResult> OnPostSomeMethodPartial(string ID, string ID2, ...)
和 returns 视图 return Partial("_SomePartialPagePartial", SomeDataModel)
符合预期。
但是,当我将 _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 中所述),但这似乎不起作用??通过 services.Configure<RazorViewEngineOptions>(options => ...
添加的 options.PageViewLocationFormats
路径不会附加在调试器中验证的路径搜索数组。
也许最好的解决方案是允许直接在调用中设置部分文件的目录(即 Partial("<optional path>/_SomePartialPagePartial", SomeDataModel)
或 Partial("_SomePartialPagePartial", <optional path>, SomeDataModel)
)。增强?
无论如何,如果 help/suggestions 能解决这个问题,我们将不胜感激...:)
P.S。我正在使用 latest/updated 版本的 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");
}
详情请参考下方post.
我在 .NET Core 3.1 应用程序中设置部分页面(视图)时遇到问题'Search Path'。当我将 _SomePartialPagePartial.cshtml
放在默认搜索路径目录(/Pages/Shared/ 或 /Views/Shared/)或与调用 Razor 页面相同的目录中时,AJAX 脚本调用public async Task<PartialViewResult> OnPostSomeMethodPartial(string ID, string ID2, ...)
和 returns 视图 return Partial("_SomePartialPagePartial", SomeDataModel)
符合预期。
但是,当我将 _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 中所述),但这似乎不起作用??通过 services.Configure<RazorViewEngineOptions>(options => ...
添加的 options.PageViewLocationFormats
路径不会附加在调试器中验证的路径搜索数组。
也许最好的解决方案是允许直接在调用中设置部分文件的目录(即 Partial("<optional path>/_SomePartialPagePartial", SomeDataModel)
或 Partial("_SomePartialPagePartial", <optional path>, SomeDataModel)
)。增强?
无论如何,如果 help/suggestions 能解决这个问题,我们将不胜感激...:)
P.S。我正在使用 latest/updated 版本的 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");
}
详情请参考下方post.