2016-11-05 119 views
0

我試圖用JQuery創建一個動態的@Html.ActionLink,我不能這樣做。如何使用JQuery創建動態@Html.ActionLink?

我該怎麼做?

試圖

$('#tableView > tbody').empty(); 
    if (data["CategoriaProduto"].length > 0) { 
     $.each(data["CategoriaProduto"], function (i, cp) { 
      var editLink = $('@Html.ActionLink("Edit", "edit", "CategoriaProduto"), new {id = ' + cp.id + '}');   

      $('#tableView > tbody:last-child').append('<tr>' 
                + '<td class="text-capitalize small">' + cp.descricao + '</td>' 
                + '<td class="col-md-1">' + editLink + '</td>' 
                + '</tr>'); 
     }); 
    } 
+1

你不能。 Razor代碼在填充到視圖之前在服務器上進行評估 - 您的JavaScript變量在該點不存在。您可以使用'@ Html.ActionLink(「Edit」,「edit」,「CategoriaProduto」)來生成'base'url,然後通過修改其'href'屬性在腳本中附加路由值 –

回答

1

簡短的回答是不能。

必須先在服務器上解析命令@Html.ActionLink(),然後纔將頁面發送到客戶端的瀏覽器。 jQuery只能在客戶端的瀏覽器中運行。

然而,你可以做的是在瀏覽器中渲染它,然後複製生成的html,例如。 <a href="/Edit/CategoriaProduto">My Link</a>或任何輸出結果,並在你的循環中使用該格式。

0

爲每行可以指定和自動ID,這些ID作爲參數傳遞給控制器​​。這是動態網址創建。