c# – 在MVC中清除视图引擎会破坏站点地图的面包屑样式

c# – 在MVC中清除视图引擎会破坏站点地图的面包屑样式,第1张

概述在我正在开发的MVC 5 Web应用程序中,出于性能考虑,我正在清理视图引擎,并使用ViewEngines.Engines.Clear()在Global.asax.cs中仅添加RazorViewEngine;它打破了mvc sitemap面包屑中的样式 之前 后 我的站点地图局部视图(SiteMapPathHelperModel.cshtml)看起来像 @model MvcSiteMapProvi 在我正在开发的MVC 5 Web应用程序中,出于性能考虑,我正在清理视图引擎,并使用VIEwEngines.Engines.Clear()在Global.asax.cs中仅添加RazorVIEwEngine;它打破了mvc sitemap面包屑中的样式

之前

我的站点地图局部视图(SiteMapPathHelperModel.csHTML)看起来像

@model MvcSiteMapProvIDer.Web.HTML.Models.SiteMapPathHelperModel@using System.Web.Mvc.HTML@using System.linq@using MvcSiteMapProvIDer.Web.HTML.Models<ol >    @foreach (var node in Model)    {        if (node == Model.Last())        {            <li >                <strong>@HTML.displayFor(m => node)</strong>            </li>        }        else        {            <li>                @if (node.Title == "Home")                {                    <a href="/"><i ></i></a>                }                else                {                    @HTML.displayFor(m => node)                }            </li>        }    }</ol>

不知何故,它似​​乎回落到另一个实现而不是视图下的部分>分享>显示模板

可能是什么原因?

编辑

我在这里错过了一些重要的信息,另一个开发人员在Application_Start()的底部完成了这个

VIEwEngines.Engines.Add(new RazorVIEwEngine{     PartialVIEwLocationFormats = new string[]     {           "~/Areas/Shared/{0}.csHTML",}});
解决方法 我没有看到您提供的信息存在问题,但我的猜测是您没有清除并在Application_Start方法中设置视图引擎.

public class MvcApplication : System.Web.httpApplication{    protected voID Application_Start()    {        VIEwEngines.Engines.Clear();        VIEwEngines.Engines.Add(new RazorVIEwEngine());        AreaRegistration.RegisterallAreas();        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);        RouteConfig.RegisterRoutes(Routetable.Routes);        BundleConfig.RegisterBundles(Bundletable.Bundles);    }}

请注意,当/ VIEws / Shared / displayTemplates /文件夹中没有视图时,内部MvcSiteMapProvIDer引擎用于备份.在这种情况下,它将从DLL中提供默认模板,这似乎是在这里发生的.

如果您的Razor视图引擎在内部视图引擎之后注册,则可能发生这种情况.因此,如果您在Application_Start中没有此代码(如您所愿),那么您可以尝试插入Razor视图引擎以确保它放在MvcSiteMapProvIDer回退引擎之前.

VIEwEngines.Engines.Clear();VIEwEngines.Engines.Insert(0,new RazorVIEwEngine());

或者如前所述,只需在一个 *** 作中删除网页视图引擎即可.

VIEwEngines.Engines.RemoveAt(0);

第一次调用MvcSiteMapProvIDer HTML帮助程序时注册内部视图引擎.因此,如果您在该点之后调用add方法,则在内部MvcSiteMapProvIDer视图引擎之后添加Razor视图引擎.

总结

以上是内存溢出为你收集整理的c# – 在MVC中清除视图引擎会破坏站点地图的面包屑样式全部内容,希望文章能够帮你解决c# – 在MVC中清除视图引擎会破坏站点地图的面包屑样式所遇到的程序开发问题。

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1231596.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存