2017-04-01 87 views
0

我製作一個列表並使用@ Ajax.ActinLink進行超鏈接,以便點擊嵌套列表時可以使用部分視圖打開。當我點擊第一個選項列表顯示部分觀點,但是當我點擊第二個列表選項,局部視圖不打開這裏是我的代碼:使用ajax和css下拉菜單

<ul id="menu"> 
      <h3>Categories</h3> 
      @foreach (company company in @Model) 
      { 
       <li> 
        @Ajax.ActionLink(company.COMPANY_NAME, "All", new AjaxOptions() 
        { 
         HttpMethod = "GET", 
         UpdateTargetId = "yr", 
         InsertionMode = InsertionMode.Replace 
        }) 
       <ul class="sub-menu"> 
        <li id="yr"></li> 
       </ul> 
       </li> 
      } 
</ul> 

here 2016 and 2017 comes from the partial view but it does not display when i click on the BMW

+0

爲問題 –

+0

添加刀片標記,您無需爲刀片文件執行{{}}。 '@ foreach'和'@ endforeach'就是你所做的。 – Rehan

回答

0

我看到你使用C#razor語法,我將推斷您正在使用某種形式的ASP.NET並以此方式創建應用程序。與使用AJAX相比,它們可以更好地完成此調用。 AJAX過時,並且不是在使用C#razor語法時使用的最佳實現。我會使用JS或者angularJS將HTTP GET請求調用到你的控制器。看看下面這個使用HTTP GET請求在網頁中加載註釋的例子。

<script type="text/javascript"> 

    // Http GET Request to load the comments at each page refresh. 
    var app = angular.module('myArticleViewer', []); 
    app.controller('myArticleController', function ($scope, $http, $timeout) { 
     try { 
      $http({ 
       method: "GET", 
       url: "/Documentation/Comments/@Model.ArticlesViewModelID" 
      }).then(function mySucces(response) { 

       $scope.data = response.data; 
      }); 
     } catch (e) { 
      alert("Error: Bad Request"); 
     } 


    }); 
    </script> 

您將在負責該頁面的相應控制器中對控制器操作發出HTTP GET請求。然後,您將返回超鏈接URL的列表作爲您正在進行HTTP GET請求的控制器操作的值。然後,使用angularJS和ngDirectives,您將爲下拉框編寫HTML代碼,並遍歷從angularJS HTTP GET請求調用返回的數據。這將爲您提供您所尋求的結果。