- ASP.NET MVC内でjQueryと一緒に実行 -PartialViewはポストバックなしで再レンダリングできますか?
私は<LI>
ブロックをドロップダウンメニュー項目のリストとしてレンダリングするためにjQueryを使用しています。ユーザーがログインしていなければ、そのリストには3つの項目があります - ログインしていれば4項目です。その4番目の項目はいくつかの条件を実行する必要があります。コントロールとメインページコール:
<div id="loginBox">
<% Html.RenderPartial("showLoginStatus"); %>
</div>
どのようにレンダリングするかを決定します。
これは、AJAXベースのログインに続くポストバックを待っている限り、これほどまでに機能しています。私が今必要とするのは、ページをリフレッシュせずにコードを実行することです。
ログインボタンまたはユーザーの名前のいずれかが表示されるページの一部は次のようになります。
var form = $("#loginForm");
form.submit(function() {
var data = form.serialize();
$.post(form.attr("action"), data, function(result, status) {
if (result.Success) {
$(".showLoggedUser").html(result.UserName + '<br /><a href="/Admin/Account/LogOut">Log Out</a>');
//how can I force the code contained in 'showLoginStatus.ascx' to render at this point?
api.close();
} else {
$('.loginErrors').html(result.ErrorMessage);
}
}, "json");
return false;
});
});
アップデートパネルの使用を検討しましたか? updatepanelsは「遅い」として知られていますが、実際にどのくらいのデータがポストバックされているかを確認するには、firebugを使用します。それは小さいかもしれませんが、それは頭がいっぱいで、ページのライフサイクルをチェックしておく必要があります –