如何在 ASP.NET MVC3 中使用 aspx 菜单功能。这样单击菜单项将填充gridview。
2 回答
ASP.NET MVC 没有像我们在 ASP.NET WebForms 中那样的任何服务器控件。这完全是关于手工编写纯 HTML 代码。(Webforms 中的所有服务器控件也会生成 HTML 并呈现给浏览器)
您可以做的是,为您的菜单项设置标签。然后在单击时,您可以调用另一个操作方法,该方法会加载要以表格格式显示的所有数据。如果这些菜单将出现在所有页面中,您可以将它们保留在 _layout.cshtml 中,这将起到母版页的作用。
如果您想在不重新加载页面的情况下将一些数据加载到 Table(UI),您可以使用 jQuery ajax 来完成。
假设您的菜单有一些类似这样的标记,下面的代码使用 jQuery 加载函数从您的 Action 方法加载响应。
//Don't forget to include jQuery library
<ul>
<li>@Html.ActionLink("Users","List","Users",null,new {@class="ajaXMenu"})</li>
<li>@Html.ActionLink("Jobs","List","Jobs",null,new {@class="ajaXMenu"})</li>
</ul>
<div id="contentDiv"></div>
<script type="text/javascript>
$(function(){
$("a.ajaXMenu").click(function(e){
e.preventDefault();
$("#contentDiv").load($(this).attr("href"));
});
});
</script>
首先,您可能想要研究 MVC 的站点地图之类的东西,其中有一个非常好的开源选项: https ://github.com/maartenba/MvcSiteMapProvider
然后你会想要实际的菜单。没有 MVC 菜单控件,因此您必须自己创建一个,或者使用其他人的。Twitter bootstrap 有一个相当不错的导航菜单:http: //twitter.github.com/bootstrap/components.html#navbar
此外,telerik 有一个你也可以使用的菜单,但是这个你需要一个许可证: http ://demos.kendoui.com/web/menu/index.html