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