MVC で Jquery を使用していますが、アンカー タグの onclick イベントに問題があります。これは、コントローラに AJAX 呼び出しを行う Javascript 関数を呼び出しています。
<a id="LoginLink_@Model.DomainLibraries[i].Id" href="" onclick="LoginLibrary(this);" domainLibId="130" HasRole="false" style="text-decoration:underline;">Login</a>
function LoginLibrary(obj) {
var selectedLibraryId = obj.getAttribute('domainLibId');
var hasUserRole = obj.getAttribute('HasRole');
$.ajax({
type: "POST",
url: "/Account/LoginLibrary",
data: { domainLibraryId: selectedLibraryId, hasUserRole: hasUserRole },
success: function (arg) {
alert(arg);
$("#divExAuthLibSetting").html(arg);
},
error: function (xhr, ajaxOptions, thrownError) {
}
});
}
何が起こっているのかというと、ログインリンクをクリックすると、呼び出しがコントローラーメソッドに送られる前に、おそらく「alert(arg);」が原因で、値が空のアラートが表示されます。次に、呼び出しはコントローラーに行きます。しかし、コントローラーからの応答の後、引数に何も取得できません。
document.Ready() で関数 LoginLibrary() を呼び出すと、問題なく動作します。応答「arg」を取得してdivに表示できます。
クリック時にアンカータグでajax呼び出しが機能しないということですか..