2011-04-13 95 views
1

我有一個顯示正確數據的jQuery自動選擇框。現在我想在選擇一個項目時觸發一個ASP.NET MVC 3控制器。控制器應該重定向到一個View。這裏是我的jQuery自動完成代碼(我敢肯定有些東西被省略第二個Ajax調用,但我還沒有找到它):從jQuery自動完成選擇中觸發控制器操作

<script type="text/javascript"> 
    $(function() { 
     $("#Client").autocomplete({ 
      source: function (request, response) { 
       $.ajax({ 
        url: 'Entity/GetClientAutoComplete', type: 'POST', dataType: 'json', 
        data: { query: request.term }, 
        success: function (data) { 
         response($.map(data, function (item) { 
          return { label: item, value: item }; 
         })) 
        } 
       }) 
      }, 
      minLength: 1, 
      select: function (event, ui) { 
       $.ajax({ 
        url: 'Entity/GetApplicationsByName/' + ui.item.value, type: 'POST' 
       }) 
      } 
     }); 
    }); 
    </script> 

這裏就是我試圖調用控制器:

public ActionResult GetApplicationsByName(string id) 
     { 
      ViewBag.Client = id; 
      var apps = _service.GetDashboardByName(id); 
      return View("Dashboard", apps.ToList()); 
     } 

當我看到Firebug中的Ajax調用觸發器時,我看到了正確的URL配置,但沒有發生任何其他事情。它的行爲好像它想要加載某些東西而不是發送一些東西。我很困惑。感謝您的任何指導。

回答

1

那麼你發送了一個idPOSTGetApplicationsByName控制器,並且控制器正在發回視圖。

如果你想重定向,您可以使用以下命令:

select: function (event, ui) { 
    window.location.href = 'Entity/GetApplicationsByName/' + ui.item.value; 
} 
+0

好極了!是的,附近有人告訴我,我不想進行Ajax調用,而應該更像是表單文章。但是,您的建議可能會爲我節省更多打字量。我測試了它,並按預期發送了ViewBag參考。現在我需要弄清楚爲什麼存儲庫沒有返回數據,但這是另一個問題。 – ewomack 2011-04-13 22:15:06