Umbraco中的动态菜单导航使用.Net用户控件

时间:2014-07-16 12:07:15

标签: menu navigation umbraco

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

由于

Tarunjit Singh

1 个答案:

答案 0 :(得分:2)

你应该真的调查Razor的事情。它只是简单不要尝试! 看起来c#与一些HTML混合在一起。如果你真的想坚持使用.Net UserControls,你可能会错过未来的版本。

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

  1. 你需要自己写出HTML
  2. 为某些第三方控件创建一些自定义模型
  3. 这两个选项都不会根据需要返回完全 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>
    

    此示例可用作局部视图。并且可以使用以下内容放入您的(Razor)模板:@Html.Partial("NameOfThePartial")

    你必须承认,它并不太难。

相关问题