使用 ASP.NET 我试图使用 jQuery 而不是使用“location.reload();”重新加载我的网页的一部分。这是一个单页应用程序。当用户提交表单时,用户信用会发生变化,并且新值应该在不重新加载整个页面的情况下更新。 credits 的值是通过 Ajax Get Call 检索的,并且应该在 Ajax Post Call 之后更新。我尝试使用 "$("#usercredits").load(?);"在 Ajax Post 中,但无法正确处理。我是否需要局部视图来实现这一目标?感谢您的帮助。
HTML _Layout.cshtml
<ul class="nav masthead-nav">
<li id="usercredits">
//Paragraph retrived from Ajax Get Call: "#reloadUsercredits".
</li>
<li>
<p class="user">@User.Identity.Getusername()</p>
</li>
</ul>
JS
//Ajax POST user pack (buy pack)
$("#postform").submit(function (e) {
e.preventDefault();
var data = {
applicationUserId: $("#userId").val().trim(),packId: $("input.activeImg").val().trim(),}
$.ajax({
url: '/api/buypack',type: 'POST',dataType: 'json',data: data,success: function () {
document.getElementById("postform").reset();
location.reload();
},error: function () {
}
});
});
// Ajax GET user credits (navbar usercredits)
var $credits = $('#usercredits')
$.ajax({
type: 'GET',url: '/api/user',success: function (credits) {
$.each(credits,function (i,user) {
$credits.append('<p id="reloadUsercredits" class="credits">credits: ' + user.credits + '</p>');
});
}
});