2016-11-05 78 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作为参数传递给控制器​​。这是动态网址创建。