gpt4 book ai didi

c# - 如何控制Orchard中菜单的渲染

转载 作者:行者123 更新时间:2023-11-30 12:48:07 24 4
gpt4 key购买 nike

我有以下问题:我正在 Orchard 中制作一个网站,并且必须应用某个设计公司制作的设计。他们提供了 html 和 CSS(+ LESS),我必须将其制作成一个主题。除了菜单,我大部分都完成了。我想在以下代码中将一个类应用于 nav 标记,但我无法为最终呈现它做任何替代。

<article class="widget-navigation widget-menu-widget widget" shape-id="18">
<nav shape-id="19">
<ul class="menu menu-main-menu" shape-id="19">
<li class="current first" shape-id="22">
<a href="/" shape-id="22">Home</a>
</li>
<li shape-id="24">
<a href="/Something1" shape-id="24">Something1</a>
</li>
<li shape-id="26">
<a href="/Something2" shape-id="26">Something2</a>
</li>
<li class="last" shape-id="28">
<a href="/Something3" shape-id="28">Something3</a>
</li>
</ul>
</nav>
</article>

如何影响菜单的呈现,以便我可以对其应用适当的 CSS?我可以做的唯一替代品仅包含:

<a href="@Model.Href">@Model.Text</a>

或:

@Display(Model.Menu)

最佳答案

我认为您可以在 Views/Menu-Main.cshtml 中为菜单创建自定义形状,如 this page 中所述。 .从那时起,您几乎可以对形状做任何您想做的事情。例如

@{
// Model is Model.Menu from the layout (Layout.Menu)
var tag = Tag(Model, "ul");

var items = (IList<dynamic>)Enumerable.Cast<dynamic>(Model.Items);

if (items.Any()) {
items[0].Classes.Add("first");
items[items.Count - 1].Classes.Add("last");
}
}
<nav class='my-custom-class'>
@tag.StartElement
@DisplayChildren(Model)
@tag.EndElement
</nav>

我实际上并没有尝试过这个,所以如果我不是 100% 正确的话,我深表歉意,但这至少应该让你朝着正确的方向前进。

此外,上面的示例代码只是原始菜单代码的一个稍微修改的版本,Orchard 最好的部分是它是开源的...您可以查看原始代码here

关于c# - 如何控制Orchard中菜单的渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15019611/

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