ページ内のリンクをクリックしても、JavaScript に登録されない場合があります。これは MVC ソリューションであり、Site.Master ページ内にカプセル化されたビューの 1 つです。
この最初の例は機能します。ページ: (someView.aspx)
<%: Html.ActionLink("Add", "AgentNotesCreate", "AgentNotes", new { id = Model.AgentId }, new { @class="addLink"} )%>
(レンダリングされたリンク)
<a class="addLink" href="/AgentNotes/AgentNotesCreate/152">Add</a>
Javascript:
$(function () {
$(document).on("click", "a.addLink", function () {
var newHref = $(this).attr("href");
if (newHref.split("?").length > 1) {
// There's already a query string attached - we're adding our own on top.
newHref += "&returnToken=" + $("#page_redirect_token").val();
}
else {
// We're adding the only querystring parameter
newHref += "?returnToken=" + $("#page_redirect_token").val();
}
$(this).attr("href", newHref);
});
});
ただし、上記と同じ JavaScript を参照するこの 2 番目の例は機能しません。$(document)... 行に移動し、関数全体をスキップするため、returnToken が URL に追加されません。
2 番目の例: (someSecondView.aspx)
<%:Html.ActionLink("Add", "EMDProductShelfCreate", "EMDProductShelf", new{id = Model.PersonId}, new{@class="addLink"} ) %>
(レンダリングされたリンク)
<a class="addLink" href="/EMDProductShelf/EMDProductShelfCreate/45">Add</a>