Jquery 如何为ASP.NET和ASP.NET MVC创建公共菜单控件?

Jquery 如何为ASP.NET和ASP.NET MVC创建公共菜单控件?,jquery,asp.net,asp.net-mvc,Jquery,Asp.net,Asp.net Mvc,我集成了ASP.NET和ASP.NET MVC,以便在单个项目中协同工作。这里我必须使用一些常用的控件,比如:菜单控件。这些菜单必须从数据库中动态填充。在jQuery的帮助下,通过从数据库中填充详细信息,可以在div中创建菜单吗 如何为ASP.NET和ASP.NET MVC创建公共菜单控件?如果您有任何建议,我们将不胜感激。您看过带菜单的TreeView吗? 从服务器获取数据 将数据转换为JSON格式 获取jQuery以获取JSON数据 使用客户端模板呈现菜单 最近我转到ASP.NET MVC,

我集成了ASP.NET和ASP.NET MVC,以便在单个项目中协同工作。这里我必须使用一些常用的控件,比如:菜单控件。这些菜单必须从数据库中动态填充。在jQuery的帮助下,通过从数据库中填充详细信息,可以在div中创建菜单吗


如何为ASP.NET和ASP.NET MVC创建公共菜单控件?如果您有任何建议,我们将不胜感激。

您看过带菜单的TreeView吗?

  • 从服务器获取数据
  • 将数据转换为JSON格式
  • 获取jQuery以获取JSON数据
  • 使用客户端模板呈现菜单

最近我转到ASP.NET MVC,我也对如何创建菜单感兴趣。我只找到了1个合适的帮助()。本教程使用Web.sitemap创建菜单但是如果您尝试使用此帮助创建菜单,您会发现它不适合“更高级”菜单。因此我修改了此代码并创建了此代码

using System.Text;
using System.Web;
using System.Web.Mvc;

public static class MenuHelper
{
    public static MvcHtmlString Menu(this HtmlHelper helper)
    {
        var sb = new StringBuilder();
        sb.Append("<div id='menu'><ul>");

        var topLevelNodes = SiteMap.RootNode.ChildNodes;

        foreach (SiteMapNode node in topLevelNodes)
        {
            sb.AppendLine(SiteMap.CurrentNode == node ? "<li class='selectedMenuItem'>" : "<li>");

            sb.AppendFormat("<a href='{0}'>{1}</a>", node.Url, helper.Encode(node.Title));

            BuildMenu(sb, node);

            sb.AppendLine("</li>");
        }

        sb.AppendLine("</ul></div>");

        return MvcHtmlString.Create(sb.ToString());
    }

    private static StringBuilder BuildMenu(StringBuilder sb, SiteMapNode node)
    {
        if (node.ChildNodes.Count != 0)
        {
            sb.Append("<ul>");
            foreach (SiteMapNode childNode in node.ChildNodes)
            {
                sb.AppendLine(SiteMap.CurrentNode == childNode ? "<li class='selectedMenuItem'>" : "<li>");

                sb.AppendFormat("<a href='{0}'>{1}</a>", childNode.Url, childNode.Title);

                BuildMenu(sb, childNode);

                sb.AppendLine("</li>");
            }

            sb.AppendLine("</ul>");
        }

        return sb;
    }
}
使用System.Text;
使用System.Web;
使用System.Web.Mvc;
公共静态类MenuHelper
{
公共静态MvcHtmlString菜单(此HtmlHelper帮助程序)
{
var sb=新的StringBuilder();
某人加上(“
    ”); var topLevelNodes=SiteMap.RootNode.ChildNodes; foreach(topLevelNodes中的SiteMapNode节点) { sb.AppendLine(SiteMap.CurrentNode==node?”
  • “:“
  • ”; sb.AppendFormat(“”,node.Url,helper.Encode(node.Title)); 构建菜单(sb,节点); 某人加上一行(“
  • ”); } sb.附录(“
”); 返回MvcHtmlString.Create(sb.ToString()); } 私有静态StringBuilder构建菜单(StringBuilder sb,SiteMapNode节点) { 如果(node.ChildNodes.Count!=0) { 某人加上(“
    ”); foreach(node.ChildNodes中的SiteMapNode childNode) { sb.AppendLine(SiteMap.CurrentNode==childNode?”
  • :“
  • ”; sb.AppendFormat(“”,childNode.Url,childNode.Title); 构建菜单(sb,子节点); 某人加上一行(“
  • ”); } sb.附录(“
”); } 归还某人; } }

在视图中,您只写
@Html.Menu()
记住创建Web.sitemap并将您的页面插入。希望有帮助

我可以在ASP.NET和ASP.NET MVC中使用带菜单的treeview吗?如何将数据库中的数据绑定到此菜单??