- 在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