在MVC5,我知道你可以有一个Shared
文件夹下的Views
,然后使用RenderPartial
在局部视图渲染。
有没有永远只能一个Shared
整个网站的文件夹?或者是有可能有多个“共享”的地方?
举例来说,我在我的网站的结构如下: -
\浏览
\视图\共享
\控制器
\楷模
\身份
\标识\浏览
\标识\控制器
\标识\型号
我不知道是否也有可能为Identity
文件夹有自己的Shared
文件夹,以及,那也的RenderPartial将工作?
如果这是可能的,我可以呈现PartialView
从这个其他Shared
文件夹? 我曾尝试这一点,但没有成功-即使我直接引用使用查看tilde ~
方法,但它似乎不喜欢跑步抛出exception
。 但是,如果我把PartialView
在我\Views\Shared
文件夹,然后一切正常。
您可以通过添加以下代码在Global.asax中包括在视图引擎的目录Application_Start()
事件:
RazorViewEngine razorEngine = ViewEngines.Engines.OfType<RazorViewEngine>().FirstOrDefault();
if (razorEngine != null)
{
string[] newPartialViewFormats = new[]
{
"~/Indentity/Views/{1}/{0}.cshtml",
"~/Identity/Views/Shared/{0}.cshtml"
};
razorEngine.PartialViewLocationFormats = razorEngine.PartialViewLocationFormats.Union(newPartialViewFormats).ToArray();
}
现在视图引擎会发现在浏览/分享 ,也身份/查看/共享视图
你可以参考这个链接 ,并指该SO帖子 。
当渲染PartialView
•来自其它文件夹,而不是默认的View
文件夹时,必须提供完整的路径以及文件类型:
例如:
@Html.Partial("~/Identity/Views/myviewname.cshtml")
你正在做的方式,貌似你试图实现一个已经存在的功能命名的区域。
你应该看看这里:
漫步:组织使用领域的ASP.NET MVC应用程序
文章来源: Is it possible to have multiple Shared folders in MVC, and execute a RenderPartial to a Partial View in the other shared folder?