jQuery コードに JavaScript 変数があり、ID を使用する必要がありますが、機能してHtml.ActionLink
いません。
@(Html.ActionLink("Genomför", "AnswerForm", "AnswerNKI", new {id = goalcard.Id},null))
「シンボル「goalcard」を解決できません」というメッセージが表示されます。これは、goalcard が JavaScript 変数であるためです。
これは次のようになります。
$.post('@Url.Action("Search", "SearchNKI")', data, function (result) {
$("#GoalcardSearchResult tbody").empty();
result.forEach(function(goalcard) {
$("#GoalcardSearchResult tbody").append(
$('<tr/>', {
// steg Create a row for each result
html: "<td>" + goalcard.Name +
"</td><td>" + goalcard.Customer +
"</td><td>" + goalcard.PlannedDate +
"</td><td>" + goalcard.CompletedDate +
"</td><td>" + '@(Html.ActionLink("Genomför", "AnswerForm", "AnswerNKI", new {id = goalcard.Id},null))' + "</td>"
}));
});
});
私はしばらくテストしてきましたが、ほとんど解決策を見つけました。次のようになります。
@(Html.ActionLink("Genomför", "AnswerForm", "AnswerNKI",null, new {id = "mylink"}))
次に、新しい関数を作成しました。
$('#mylink').click(function (goalcard) {
var id = goalcard.Id;
this.href = this.href + '/' + id;
});
これは機能するはずですが、forEach
ループ内でこのクリック関数を使用してゴールカード変数に到達できるようにする必要があります。の中に入れると、forEach
ゴールカードの数に応じて、このクリック関数が何度も実行されます。
したがって、 /AnswerNKI/AnswerForm/1/2
ゴールカードが 2 枚ある場合の結果は次のようになります。または/AnswerNKI/AnswerForm/1/2/3/4/5
、ゴールカードが 5 枚ある場合などです。
しかし、そうあるべきです/AnswerNKI/AnswerForm/1
それは基本的に合計されます。
もう 1 つの問題は、他のすべての行にある /AnswerNKI/AnswerForm/
ため、基本的に最初の行だけが ID を取得することです。
それを修正するための解決策を見つける方法がわかりません。
どんな種類の助けも大歓迎です。
前もって感謝します