2013-10-06 48 views
1

獲取錯誤如下..同時使用獲取錯誤@ Html.ActionLink()

編譯器錯誤消息:CS1973: 'System.Web.Mvc.HtmlHelper' 具有命名爲 'ActionLink的' 不適用的方法,但會出現通過這個名字有一個擴展方法。擴展方法不能動態分派。考慮轉換動態參數或調用擴展方法而不使用擴展方法語法。

在MVC應用程序中,我試圖使用字典條目的鍵作爲鏈接的鏈接文本,但即時通訊出現錯誤。

這是我得到錯誤的行...我試圖用@ item.Key和其他各種方式替換item.Key。

@Html.ActionLink(item.Key,"ExpandFolder","Home",new {path=item.Key },null) 

我的整個視圖代碼看起來像這樣...

<form id="ViewFiles" method="post" action="Index"> 
    <ul> 
     @foreach (var item in @ViewBag.filesFolders) 
     { 
      if (item.Value == "folder") 
      { 
       <li> 
        @Html.ActionLink(item.Key,"ExpandFolder","Home",new {path=item.Key },null) 
       </li> 
      } 
      else if (item.Value == "file") 
      { 
       <li><a href="">[email protected]</a></li> 
      } 
     } 
    </ul> 
</form> 

回答

7

類型轉換item.Key

@Html.ActionLink((string)item.Key,"ExpandFolder","Home",new {path=item.Key },null) 
+0

非常感謝你的回覆 – Sara

4

@ViewBag.filesFolders

這是問題所在。 HtmlHelper返回錯誤描述:

擴展方法不能動態分派。

您的ViewBag.filesFolders是動態類型的viewbag,所以它會導致問題。

你應該使用強類型的ViewModel(更好 - IEnumerable<T>)來顯示你的filesFolders

其他的解決辦法是投你item.Keystring型,所以它會看起來像:

@Html.ActionLink((string)item.Key, "ExpandFolder", "Home", new {path=item.Key }, null) 

但正如我之前說的,我建議在未來使用強類型的視圖模型。

+0

謝謝你的回覆... – Sara

+0

@SaranSassy,不客氣。如果某些答案有幫助,則可以將其標記爲已接受:) – whoah

相關問題