gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 12:42:56 25 4
gpt4 key购买 nike

在我正在开发的 MVC 5 Web 应用程序中,为了性能起见,我正在清除 View 引擎并仅在 Global.asax.cs 中添加 RazorViewEngine 使用 ViewEngines.Engines.Clear(); 它破坏了 mvc 站点地图面包屑中的样式

之前

enter image description here

之后

enter image description here

我的站点地图部分 View (SiteMapPathHelperModel.cshtml) 看起来像

@model MvcSiteMapProvider.Web.Html.Models.SiteMapPathHelperModel
@using System.Web.Mvc.Html
@using System.Linq
@using MvcSiteMapProvider.Web.Html.Models
<ol class="breadcrumb">
@foreach (var node in Model)
{
if (node == Model.Last())
{
<li class="active">
<strong>@Html.DisplayFor(m => node)</strong>
</li>
}
else
{
<li>
@if (node.Title == "Home")
{
<a href="/"><i class="fa fa-lg fa-home"></i></a>

}
else
{
@Html.DisplayFor(m => node)
}
</li>
}
}
</ol>

它似乎以某种方式退回到另一种实现,而不是 View > 共享 > 显示模板下的部分

可能是什么原因?

编辑

我在这里遗漏了一些重要信息,另一个开发人员在 Application_Start() 的底部完成了此操作

ViewEngines.Engines.Add(new RazorViewEngine
{
PartialViewLocationFormats = new string[]
{
"~/Areas/Shared/{0}.cshtml",
}
});

最佳答案

我没有发现您提供的信息有问题,但我猜测您没有在 Application_Start 方法中清除和设置 View 引擎。

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/ 文件夹中没有 View 时,内部 MvcSiteMapProvider 引擎用于备份。在这种情况下,它将从 DLL 中提供默认模板,这似乎是这里发生的事情。

如果您的 Razor View 引擎是在内部 View 引擎之后注册的,则可能会发生这种情况。因此,如果您在 Application_Start 中没有此代码(您应该这样做),那么您可以尝试插入 Razor View 引擎以确保它位于 MvcSiteMapProvider 之前回退引擎。

ViewEngines.Engines.Clear();
ViewEngines.Engines.Insert(0, new RazorViewEngine());

或者如前所述,只需一次删除网页 View 引擎。

ViewEngines.Engines.RemoveAt(0);

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

关于c# - 在 MVC 中清除 View 引擎会破坏站点地图面包屑样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32238688/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com