【发布时间】:2016-05-07 03:13:08
【问题描述】:
我有定义左侧导航栏的布局页面。我想在左侧导航栏中加载菜单项的子选项。我为顶部菜单项添加了一个 ajax 点击事件。但它总是命中 RouteMap 中定义的默认方法,而不是我为加载局部视图而编写的操作方法。
我的 Routeconfig.cs 文件。我还有其他地图定义了这个文件。但这是受到打击的方法。
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new {
controller = "Client",
action = "Index",
id = UrlParameter.Optional }
);
我的 _Layout 页面中的菜单项
<li>
<a href="#" id="recentlist">Recent list</a>
<ul>
<li>
<a href="#" class="back">Main Menu</a>
</li>
<div id="recentClients"></div>
</ul>
</li>
这是我在 _Layout 页面中定义的 javascript。
$('#recentlist').click(function () {
$.ajax({
Url: "@Url.Action("RecentList", "Navigation")",
success: function (r) {
$('#recentClients').html(r);
}
});
});
但它从来没有命中我的 NavigationController 中的 RecentList 方法。它总是转到 RouteConfig.cs 中定义的默认方法
这也是我的控制器代码。
public ActionResult RecentList()
{
var clientModel = new ClientModel();
var recentlList = clientModel.GetRecentList();
return PartialView("_RecentlList", recentlList );
}
【问题讨论】:
-
您所显示的只是一个名为
RecentlyUsedList而不是RecentList的方法 - 这是一个拼写错误(以及不正确的id属性)? -
ajax 选项也应该是
url: ...,而不是Url: ...(小写) -
@StephenMuecke - 啊!!那就是问题所在。我没有意识到 U 是大写的。谢谢...
标签: ajax asp.net-mvc controller