2016-11-05 10 views
0

私は動的な@Html.ActionLinkをJQueryで作成しようとしていますが、これはできません。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変数は存在しません。 '@ H​​tml.ActionLink(" Edit "、" edit "、" CategoriaProduto ")'を使って 'base' URLを生成し、 'href'属性を変更してスクリプトにルート値を追加することができます –

答えて

1

をしようと、短い答えは、あなたがすることはできませんです。

ページがクライアントのブラウザに送信される前に、コマンド@Html.ActionLink()をサーバーで解決する必要があります。 jQueryはクライアントのブラウザでのみ動作します。

ただし、ブラウザでレンダリングしてから、結果のhtmlをコピーすることができます。 <a href="/Edit/CategoriaProduto">My Link</a>、または出力が何であってもループ内でその形式を使用していることが判明した場合。

0

を指定でき、これらのIDはパラメータとしてControllerに渡されます。これは動的URL作成です。

関連する問題