asp.Net   发布时间:2022-04-07  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了asp.net-mvc – 可以为MVC Razor Layout指定可搜索的位置格式吗?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在Razor中,当加载部分视图时,可以只指定部分视图名称,Razor视图引擎将搜索RazorViewEngine.PartialViewLocationFormats:
@Html.RenderPartial("_PartialView",Model);

将实际搜索视图引擎中的PartialViewLocationFormats中指定的位置,例如

~/Views/Home/_PartialView.cshtml
~/Views/Shared/_PartialView.cshtml

但是,当指定布局时,我似乎被迫指定布局的特定路径:

@Layout = "~/Views/Shared/MyLayout.cshtml";

我想做的是通过名称指定布局,并通过搜索公共位置的列表找到实际的布局:

@Layout = "MyLayout";

…但我找不到任何设施.由于我找不到任何有关此文档的文档,我尝试使用RazorViewEngine.MasterLocationFormats进行播放,但是在定位布局时不会使用此属性.

有人知道该怎么做吗

解决方法

最近我在一个类似的问题上挣扎着,在一个使用自定义ViewEngine的主题应用程序中首先搜索主题的位置以查看主意,我试图覆盖一些主文件.强制布局定位通过ViewEngine的FindView的一种方法是在返回时指定控制器操作中主视图的名称:
return View("myView","myViewMaster");

但是,如果“myViewMaster”还具有布局(嵌套布局),则此方法对于嵌套布局不起作用.到目前为止,我最好的解决方案是直接在视图中调用视图引擎:

@{
    Layout = (ViewEngines.Engines.FindView(this.ViewContext.Controller.ControllerContext,"myViewMaster","").View as RazorView).ViewPath;
}

这是有效的,但当然可以封装在一个扩展方法中,以避免重复和抽象代码.

希望有帮助!

大佬总结

以上是大佬教程为你收集整理的asp.net-mvc – 可以为MVC Razor Layout指定可搜索的位置格式吗?全部内容,希望文章能够帮你解决asp.net-mvc – 可以为MVC Razor Layout指定可搜索的位置格式吗?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: