MVC/jquery の初心者で、リンクを動的に作成する際に問題があります。
ユーザーがテキスト ボックスに入力して追加ボタンを押すと、次の JavaScript が呼び出されます。
addItem: function (button) {
var text = this.$text.val();
var $newCell = $('<td>');
$newCell.text(text);
var $hidden = $('<input type="hidden" />');
$hidden.attr('name', this.name);
$hidden.val(text);
$newCell.append($hidden);
$newCell.append('</td>');
var $newLinkCell = $('<td>');
var $newLink = $('<a href="#" id="newLink">EPA Action Link</a>');
var $newLinkTarget = '<%: @Html.ActionLink("EPA Action Link", "EPARedirect", new { EPAId = "' + text + '" }, new { target = "_blank" }) %>';
$newLink.attr("href", $newLinkTarget);
$newLinkCell.append($newLinkTarget);
$newLinkCell.append('</td>');
var $html = $('<tr>');
$html.append($newCell);
$html.append($newLinkCell);
$html.append('</tr>');
this.$table.append($html);
this.initItem($newCell);
this.$text.val('');
}
そこで私がやっていることは、テーブルを見つけて、2 つのセルを含む新しい行を追加することです。左側にはデータが表示され、右側にはそのデータとのリンクがパラメーターとして表示されます。
既存のアイテムについては、cshtml ファイルに同じ ActionLink があります (ただし、EPAId は「@item」の jquery 変数を介して構築されます)。
とにかく、追加機能で同じタイプのリンクを動的に構築する方法を見つけようとしています。私が得ているのは、$newLinkTarget のリテラル テキストだけです。これは理にかなっていると思います。サーバーのjqueryレンダリングによって押し出されていません。
ここで私は完全に間違った道を進んでいますか?