我的共享页面布局_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中返回... 1}} div
位于#BadgeIcon
末尾的脚本是:
_LoginPartial.cshtml
还从ShoppingCartController发布此片段:
@section scripts
{
<script> //never gets triggered
$(document).ready(function () {
$.ajax({
type: "POST",
url: '@Url.Action("getCartCount", "ShoppingCart")',
success: function (data) {
$('#BadgeIcon').html(data);
}
})
});
</script>
}
正如您所说,我远非MVC的专家,所以对此的任何帮助将不胜感激。
答案 0 :(得分:2)
部分视图没有布局,因此部分不起作用。 所以,尝试在局部视图中直接删除section元素并编写javascript代码。
@section scripts //remove this
{
}
答案 1 :(得分:2)
发布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{
}