2016-01-29 2 views
0

У меня есть страница макета, где определена моя левая панель навигации. Я хочу загрузить вспомогательные параметры для элемента меню в левой панели навигации. Я добавил событие ajax click для элемента верхнего меню. Но он всегда использует метод по умолчанию, определенный в RouteMap, а не метод действий, который я написал для загрузки частичного представления.Метод действия MVC не попадает

Файл My 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> 

Это мой Javascript определяется на странице _layout.

$('#recentlist').click(function() {   
     $.ajax({ 
      Url: "@Url.Action("RecentList", "Navigation")",    
      success: function (r) { 
       $('#recentClients').html(r); 
      } 
     }); 
    }); 

Но он никогда не ударяет метод RecentList в моем навигационном контроллере. Он всегда шел к методу по умолчанию, определенному в RouteConfig.cs

Также это мой код контроллера.

public ActionResult RecentList() 
    { 
     var clientModel = new ClientModel(); 
     var recentlList = clientModel.GetRecentList(); 
     return PartialView("_RecentlList", recentlList); 
    } 
+0

Все, что вы указали, это метод с именем 'LastUsedList' not' RecentList' - это опечатка (наряду с неправильным атрибутом id)? –

+0

Опция ajax также должна быть 'url: ...', а не 'Url: ...' (нижний регистр) –

+0

@StephenMuecke - ahh !! Это проблема. Я не понимал, что U был на кепках. Спасибо... – DotNetLearner

ответ

0

Трудно быть 100% уверен, но вы ActionResult называется RecentlyUsedList в то время как вы как раз пытается ударить конечную точку под названием RecentList в NavigationController.

Так оно и должно быть:

@Url.Action("RecentlyUsedList", "Navigation"); 

И контроллер должен быть назван NavigationController.

Смежные вопросы