asp.net-mvc – 为什么在视图引擎中指定位置时,viewstart文件中需要布局的完整路径?
|
我正在玩剃刀视图引擎,而且还有一些我不太了解的东西. _ViewStart文件指定具有完整文件路径的布局,如下所示: @{
Layout = "~/Views/Shared/_MasterLayout.cshtml";
}
据我了解,必须包括完整的路径和扩展.你不能这样做: @{
Layout = "_MasterLayout";
}
但是,视图引擎指定搜索主视图的位置: MasterLocationFormats = new string[] {
"~/Views/{1}/{0}.cshtml","~/Views/Shared/{0}.cshtml"
};
为什么_ViewStart文件中需要完整的主布局文件路径? 如果指定了完整路径,那么在MasterLocationFormats []中指定可能的位置有什么意义呢? 更新 好吧,我还没有找到一个满意的答案. 从实验中可以看出,在viewstart文件中指定Layout时,MasterLocationFormats要么被插入要么被覆盖. 我可以从MasterLocationFormats中完全删除MasterLayout.cshtml位置,它对网页的显示没有任何影响. 我的个人问题是由于使用了MvcMailer package,它允许您指定剃刀视图以用作发送HTML电子邮件的模板.这个DOES使用MasterLocationFormats. 所以我仍然有点困惑,但希望这对任何来这里的人都有用.另外,this post may also be of help. 解决方法在RazorViewEngine的CreateView实现中,创建了一个新的RazorView.当RazorView覆盖BuildManagerCompiledView的RenderView方法时,它实际调用了IView的Render方法. 在此实现结束时,该行被调用. webViewPage.ExecutePageHierarchy(new WebPageContext(context: viewContext.HttpContext,page: null,model: null),writer,startPage); 这导致我们在System.Web.Mvc.dll中的WebViewPage的ExecutePageHierarchy方法. public override void ExecutePageHierarchy()
{
TextWriter writer = this.ViewContext.Writer;
this.ViewContext.Writer = this.Output;
base.ExecutePageHierarchy();
if (!string.IsNullOrEmpty(this.OverridenLayoutPath))
this.Layout = this.OverridenLayoutPath;
this.ViewContext.Writer = writer;
}
如您所见,上面的布局路径被覆盖. 有关更多信息,您可以检查RazorView和WebViewPage类. (编辑:东莞站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp-classic – 从Classic ASP执行存储过程
- asp.net-mvc – ASP.Net MVC中的自我AJAX更新部分视图/控制
- asp.net-mvc – 为什么我的视图模型中的内部成员无法在视图
- asp.net – 在部分视图中强制使用没有Html.BeginForm / Aja
- ASP.NET 5针对dnx451 / dnx46性能
- asp.net – 从我的GridView行返回一个对象
- .net – DNU发布 – 来自MSBuild的no-source
- asp.net 将一个图片以二进制值的形式存入Xml文件中的实例代
- asp.net – VB.NET – 如何使用Active Directory将SID转换为
- 实体框架 – 使用EF和WebAPI,如何返回一个ViewModel并支持I
- asp.net – [DataType(DataType.EmailAddress)]和
- asp.net-mvc – 有没有办法重命名RequestVerific
- asp.net – 将web应用程序的项目编译成dll
- asp.net – Umbraco CMS(.NET):加载xslt /用户控
- 如何在asp.net中更改javascript警告框的标题?
- entity-framework – 如果EF 5,如何定义自定义命
- ASP.NET MVC学习教程之Razor语法
- asp.net读取excel文件的三种方法示例
- asp.net – 如何从TableAdapter中检索存储过程返
- asp.net – 我可以愚弄HttpRequest.Current.Requ
