ASP.NET MVC 控制器 return 不在共享文件夹中的部分视图

ASP.NET MVC controller return partial view that is not in Shared folder

我的控制器中有调用此部分视图的方法:

return PartialView("_tinzProdListPageTemplate", tblStoreLocation);

该部分视图位于 Shared 文件夹中,上面的代码工作正常并加载了视图。但现在我想将 _tinzProdListPageTemplate 移动到 Shared 文件夹内的另一个名为 Templates 的文件夹,以便我可以更好地组织我的项目。

我尝试了这些,但它们不起作用。似乎只有直接从默认 Shared 文件夹调用时,才能从控制器加载局部视图。 (我什至尝试将 .cshtml 作为上述示例的扩展名添加到末尾,但也没有用)

return PartialView("Templates/_tinzProdListPageTemplate", tblStoreLocation);

return PartialView("Shared/Templates/_tinzProdListPageTemplate", tblStoreLocation);

return PartialView("~/Shared/Templates/_tinzProdListPageTemplate", tblStoreLocation);

那么我如何 return 不在 Shared 文件夹中的 PartialView。它位于 Shared 文件夹内的文件夹内?

我在 .NET Framework 上使用 ASP.NET MVC 5 运行。

这是我得到的错误:

The partial view '_tinzProdListPageTemplate' was not found or no view engine supports the searched locations. The following locations were searched:

~/Views/Store/_tinzProdListPageTemplate.aspx
~/Views/Store/_tinzProdListPageTemplate.ascx
~/Views/Shared/_tinzProdListPageTemplate.aspx
~/Views/Shared/_tinzProdListPageTemplate.ascx
~/Views/Store/_tinzProdListPageTemplate.cshtml
~/Views/Store/_tinzProdListPageTemplate.vbhtml
~/Views/Shared/_tinzProdListPageTemplate.cshtml
~/Views/Shared/_tinzProdListPageTemplate.vbhtml

完整的视图名称如下所示

"~/Areas/Public/Views/Home/Index.cshtml"

我想你只是忘了在最后添加扩展名。

也许您想要像这里一样的 CustomViewEngine

如果您注册了自定义视图引擎,那么您可以像这样设置所有搜索位置

ViewLocation, PartialViewLocation, MasterLocation