MVC动作方法没有被击中

时间:2016-01-29 11:38:46

标签: ajax asp.net-mvc controller

我有布局页面,我的左侧导航栏已定义。我想在左侧导航栏中加载菜单项的子选项。我为顶部菜单项添加了一个ajax click事件。但它总是达到RouteMap中定义的默认方法,而不是我为加载局部视图而编写的操作方法。

我的Routeconfig.cs文件。我还有其他地图定义了这个文件。但这是受到打击的方法。

routes.MapRoute(
           name: "Default",
           url: "{controller}/{action}/{id}",
           defaults: new { 
               controller = "Client", 
               action = "Index", 
               id = UrlParameter.Optional }
        );

_Layout Page

中的菜单项
 <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 );
    }

1 个答案:

答案 0 :(得分:0)

很难100%确定,但当你的ActionResult尝试在{{1 }}

所以它应该是:

RecentlyUsedList

控制器需要命名为RecentList