我的共享页面布局,_CustomerLayout.cshtml
具有:
<div class="navbar-collapse collapse">
@Html.Partial("_LoginPartial")
</div>
_LoginPartial.cshtml
具有:
<ul class="nav navbar-nav navbar-right">
<li>@Html.ActionLink("Hello, " + User.Identity.Name + "!", "UserProfile", "Home")</li>
<li>
<a href="~/ShoppingCart/Index" id="ShoppingCartSpace"><i class="fa fa-shopping-cart" aria-hidden="true" id="ShoppingCartIcon"></i></a>
<span class="badge" id="BadgeIcon"></span>
</li>
<li>
<a href="javascript:document.getElementById('logoutForm').submit()">Log off</a>
</li>
</ul>
BadgeIcon 是我想要在每个 View 中显示的内容,因此我编写了一个脚本,该脚本将从数据库中获取当前用户的购物车,动态计算购物车总数量,然后在 中返回 .ajax >#BadgeIcon
div
位于_LoginPartial.cshtml
末尾的脚本是:
@section scripts
{
<script> //never gets triggered
$(document).ready(function () {
$.ajax({
type: "POST",
url: '@Url.Action("getCartCount", "ShoppingCart")',
success: function (data) {
$('#BadgeIcon').html(data);
}
})
});
</script>
}
还从 ShoppingCartController 发布此代码片段:
[HttpPost]
public ActionResult getCartCount()
{
var user = db.Users.FirstOrDefault(x => x.UserName == HttpContext.User.Identity.Name);
var cartCount = user.ShoppingCarts.FirstOrDefault().ShoppingCartProducts.Sum(x => x.Quantity);
return Json(cartCount);
}
正如您所知,我远不是 MVC 方面的专家,因此我们将不胜感激任何有关这方面的帮助。
最佳答案
发布 Pravin Tukadiya 和 Jasen 找到的答案:
已添加
<script src="~/Scripts/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.min.js" type="text/javascript"></script>
至_LoginPartial.cshtml
并删除
@section scripts{
}
关于javascript - MVC - 布局加载部分 View ,但不触发 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38664609/