我正在为多级菜单编写代码。主菜单即第一级菜单在页面加载时加载。单击主菜单中的项目后,将创建子级菜单。 sulevel菜单中的项目由控制器中的操作结果创建。由于它是n级子菜单,我使用jquery来填充子菜单。
以下是主菜单的代码,这是一个简单的列表
<ul>
<li><a href="#" >item1</a>
<li><a href="#">item2</a> </li>
<li><a href="#">item3</a></li>
<li><a href="#">item4 </a></li>
</ul>
以下是控制器的动作结果,该控制器返回菜单项的子项,并给出它的ID。
public PartialViewResult SubItems(int id)
{
MyQueries obj = new MyQueries();
ViewData["SubCategories"] = obj.getChildCategories(id);
ViewData["Services"] = obj.getServices(id);
return PartialView();
}
我希望上面的细节给你一个想法,我想写一个jquery代码,一个锚点击事件..它接收参数即项目文本并使用控制器并创建子菜单。 例如用户点击item1,jquery代码应该将“item1”id发送给返回子项的控制器..然后代码应该创建具有子项的UL lI列表。我希望我说清楚
答案 0 :(得分:0)
我会使用jquery ajax来执行get请求,并确保指定它从服务器接受的数据类型:
$('#anchorid').click(function() {
var returnData = $.ajax({ url: @Url.Action("subitems"),
type: "GET",
dataType: "json",
data: {"id": this.attr("id"),
});
//TODO: build your list using returnData object
});
这段代码远非完美,但应该让您了解如何使用Ajax返回请求。请注意,如果您要使用此技术,则不应该在服务器上返回部分视图,您应该返回AJAX期望的任何对象类型。下面是jQuery AJAX请求的参考资料:http://api.jquery.com/jQuery.ajax/