2014-04-04 72 views
2

我有一個問題,點擊哪個應該只刷新頁面的一部分(局部視圖)打開新頁面只用「選擇」 (這是應在索引頁面內顯示的部分)。我正在嘗試使用本教程http://csharp-video-tutorials.blogspot.sk/2013/09/part-92-ajax-with-aspnet-mvc.html來做到這一點,但我不知道什麼是錯的 - 在這個論壇中我也沒有發現任何問題。ASP.NET MVC 5中的Ajax(局部視圖)不起作用 - 總是打開僅局部視圖

資源共享_layout:

@Scripts.Render("~/bundles/jquery") 

內部地圖/索引:

@Ajax.ActionLink("All", "GetTracks", 
       new AjaxOptions 
       { 
        HttpMethod = "GET", // HttpMethod to use, GET or POST 
        UpdateTargetId = "mytestdiv", // ID of the HTML element to update 
        InsertionMode = InsertionMode.Replace // Replace the existing contents 
       }) 

<div id="mytestdiv"> 
</div> 

地圖控制器(我知道這是隻使用Viewbag壞的解決方案 - 這只是暫時的):

public PartialViewResult GetTracks() 
{ 
    List<int> trackIDs = new List<int>(); 

    var queryTrack = from dTrack in db.track 
         where dTrack.device_id == 1 
         select dTrack.id; 

    foreach (int trackId in queryTrack) 
    { 
     trackIDs.Add(trackId); 
    } 

    ViewBag.trackIDs = trackIDs; 
    return PartialView("SelectTrackView"); 
} 

我想用Ajax重新加載,位於〜/ Views/Map/SelectTrackView.cshtml中:

<select id="SelectTrack" name="idTrack" class="form-control" style="margin:20px" onchange="selectTrack()"> 

    @foreach (int number in ViewBag.trackIDs) 
    { 
     if (ViewBag.selectedidTrack == @number) 
     { 
      <option value="@number" selected="selected">@number</option> 
     } 
     else 
     { 
      <option value="@number">@number</option> 
     } 
    } 
</select> 

感謝您的幫助。

+0

有瀏覽器的JavaScript控制檯的任何錯誤? – Gregoire

+0

沒有,控制檯是乾淨 – Tunerx

+0

而也這是源代碼,如何最終看起來像:All

Tunerx

回答

7

你有沒有在頁面中引用jquery.unobtrusive-ajax.js?

如果不是由這些幫助者生成的data- *標記不會被插入,鏈接將被視爲「正常」鏈接。

編輯:

你需要這個包,我認爲:Microsoft jQuery Unobtrusive Ajax

,如果你不想使用這個包,簡單地說

<script> 
(function($){ 
    $(document).on("click","a[data-ajax='true']", function(e){ 
     e.preventDefault(); 
     $("#"+ $(this).attr("data-ajax-update")).load(this.href); 
    }); 
})(jQuery); 
</script> 
+0

時,我接着說:'它給錯誤:「Uncaught TypeError:無法設置屬性」不明顯的「未定義」。我真的不確定 - 但'@ Scripts.Render(「〜/ bundles/jquery」)'不會增加不顯眼的?因爲在我的項目腳本中我添加了這個包。但是,有可能它並不像我想的那樣工作。 – Tunerx

+2

@Tunerx查看我的編輯 – Gregoire

+2

謝謝,我從開始的壞圖書館: - /真正愚蠢的錯誤...當我下載微軟jQuery Unobtrusive Ajax庫它開始正常工作。使用'〜/ Scripts/jquery.validate.unobtrusive.min.js'它根本不能工作:(。非常感謝你 – Tunerx