問題背景:MVC中共享佈局視圖的控制器方法?
我有一個實現啓動一個MVC網站。目前每個頁面都基於一個MasterLayout
視圖頁面。該主人包含一個下拉列表,該列表將與購物車中的購物車項目一起填充購物車的總貨幣價值。請在HTML注意到目前在下拉菜單中的細節是固定值:
什麼我後:
我試圖尋找這一點,但不能似乎找到正是答案。我希望能夠在每次加載頁面時使用購物車內容在navbar
中填充dropdown
。爲此,我需要一種方法來提取存儲在對象變量SESSION
中的購物車項目對象。目前我的MasterLayout
視圖就是這樣,它的一個視圖有沒有控制器與它關聯。
我該如何去分配某種方法到我的MasterLayout
,以便我可以將購物車項目模型傳遞給視圖,每次頁面被加載後,它將被設置爲下拉菜單。
這裏的HTML:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title></title>
@Styles.Render("~/Content/bootstrap.css")
@Styles.Render("~/Content/Styles.css")
@Scripts.Render("~/bundles/modernizr")</script>
</head>
<body>
<div class="navbar navbar-fixed-top">
<nav class="navbar navbar-default" role="navigation" id="nav">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand logo">HS<b>WH</b></a>
</div>
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav">
<li><a href="#" class="scroll-link" data-id="myCarousel">Products</a></li>
<li><a href="#" class="scroll-link" data-id="Welcome">About Us</a></li>
<li><a href="#" class="scroll-link" data-id="features">Contact</a></li>
</ul>
<form class="navbar-form pull-right">
<input type="text" class="form-control" placeholder="Search this site..." id="searchInput">
<button type="submit" class="btn btn-default"><span class="glyphicon glyphicon-search"></span></button>
</form>
<form class="navbar-form pull-right">
<div class="btn-group btn-group-cart">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
<span class="pull-left"><i class="fa fa-shopping-cart icon-cart"></i></span>
<span class="pull-left">Shopping Cart: 2 item(s)</span>
<span class="pull-right"><i class="fa fa-caret-down"></i></span>
</button>
<ul class="dropdown-menu cart-content" role="menu">
<li>
<a href="detail.html">
<b>Penn State College T-Shirt</b>
<span>x1 $528.96</span>
</a>
</li>
<li>
<a href="detail.html">
<b>Live Nation ACDC Gray T-Shirt</b>
<span>x1 $428.96</span>
</a>
</li>
<li class="divider"></li>
<li><a href="cart.html">Total: $957.92</a></li>
</ul>
</div>
</form>
</div>
</div>
</nav>
</div>
@RenderBody()
<footer>
<div class="container">
<div class="row">
<div class="col-sm-12 textAlignCenter">
<h5>Copyright © 2014 - Test Site</h5>
</div>
</div>
</div>
</footer>
<script>
$(document).ready(function() {
$('.dropdown-toggle').dropdown('toggle')
});
</script>
</body>
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/bootstrap")
@RenderSection("scripts", required: false)
</html>
我認爲最簡單的方法(像其他人所說的)是從佈局頁面(Html.Action)調用控制器動作。 –