【问题标题】:Dynamic Menu Navigation In Umbraco Using .Net User Control使用 .Net 用户控件在 Umbraco 中进行动态菜单导航
【发布时间】:2014-07-16 12:07:15
【问题描述】:

我是 .Net 开发人员,正在寻找与使用 .Net 用户控件在 umbraco 7 中创建动态导航菜单相关的示例,而无需使用 MVC 技术和 XSLT。我在谷歌上搜索过它,但没有得到太多回应,我得到的例子是使用 XSLT 或 Razor。我在 MVC 和 XSLT 方面没有任何经验,并且在寻找与使用经典 ASP.Net 相关的技术,即不使用 XSLT 和 MVC。如果有人可以提供一些有用的视频或链接以及我可以参考的示例,这将是一个很大的帮助。

谢谢

塔伦吉特·辛格

【问题讨论】:

    标签: menu navigation umbraco


    【解决方案1】:

    你应该真的研究一下 Razor 的事情。太简单了不试试! 它看起来像 c# 混合了一些 HTML。如果您真的想坚持使用 .Net UserControls,您可能会错过未来的版本。

    在用户控件中创建导航非常困难,因为您有 2 个选项

    1. 你需要自己写出 HTML
    2. 为某些第 3 方控件创建一些自定义模型

    这两个选项都不会返回您想要的 exact html。另一方面,Razor(和 xslt)会。

    如果您仍然想在 .Net 用户控件中尝试一些东西,请获取您想要的 Umbraco 节点的实例。举个例子吧:

    using System;
    using System.Linq;
    using Umbraco.Web;
    
    public partial class UserControls_TestUserControl : UmbracoUserControl
    {
      protected void Page_Load(object sender, EventArgs e)
      {
        var cache = this.UmbracoContext.ContentCache;
        var rootNodes = cache.GetAtRoot().First().Children;
        foreach (var node in rootNodes)
        {
          Response.Write("<li>" + node.Name + "</li>");
        }
      }
    }  
    

    如果你想调用这段代码,别忘了添加一个宏,然后在你的模板中插入宏。

    以防万一您想探索剃须刀,这里有一个等价物:

    @inherits UmbracoTemplatePage
    @{
      var homePage = CurrentPage.AncestorOrSelf(1);
      var menuItems = homePage.Children;
    }
    <nav>
      <ul>
        <li><a href="/">Home</a></li>
    
        @foreach (var item in menuItems)
        {
            <li><a href="@item.Url">@item.Name</a></li>
        }
      </ul>
    </nav>
    

    这个例子可以用作局部视图。并且可以使用:@Html.Partial("NameOfThePartial")

    放入您的 (Razor) 模板中

    你不得不承认,这并不难。

    【讨论】:

      猜你喜欢
      • 2013-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多