- 在ASP.NET MVC和jQuery一起運行 -部分視圖可否在沒有回傳的情況下重新渲染?
我使用jQuery將<LI>
塊渲染爲下拉菜單項列表。如果用戶沒有登錄,那麼在該列表中有3個項目 - 如果他已經登錄,則有4個項目。第四個項目需要運行一對條件,然後才能確定它攜帶的是什麼有效載荷,因此我將該代碼放在.ascx中控制和主頁呼叫:
<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;
});
});
你有沒有考慮過使用updatepanel?雖然updatepanels被稱爲「緩慢」,但使用firebug可以查看實際返回的數據量。它可能很小,但它應該可以幫助您節省大量的時間和檢查頁面生命週期 – 2009-08-19 00:30:41