Как повторно использовать переменную сеанса в двух разных представлениях razor
Я пытаюсь реализовать функцию проверки в своем приложении корзины покупок, и у меня возникли проблемы с повторным использованием переменной сеанса. Переменная сеанса представляет собой общую сумму заказа и определяется в представлении razor корзины покупок . Переменная работает хорошо и увеличивается соответствующим образом всякий раз, когда я добавляю товар в корзину. Пользователь нажмет кнопку Перейти к оформлению заказа после завершения добавления товаров, а затем перенаправится на страницу оформления заказа, где также должна быть показана общая сумма заказа.
На странице оформления заказа отображается значение 0, даже если переменная сеанса имеет значение (из представления корзины)
<pre> @{ int sum = 0; } @{ Session["OrderTotal"] = sum; } <div class="container-fluid"> <div class="row"> <div class="col-12 col-lg-8"> <div class="cart-title mt-50"> </div> <div class="cart-table clearfix"> <table class="table table-responsive" tabindex="1" style="overflow: hidden; outline: none;"> <thead> <tr> <th>Product</th> <th>Price</th> <th>Quantity</th> <th>Action</th> </tr> </thead> <tbody> @foreach (var item in Model) { <tr> <td class="cart_product_desc"> <h5>@item.Quantity</h5> </td> <td> <button id="" class="" data-slno="@item.ProductId" onclick="location.href='@Url.Action("Remove","Home",item)'"> <img src="~/assets/img/core-img/xxx.png" height="30" width="30" /> </button> </td> </tr> } </tbody> @foreach (var x in Model) { sum = Convert.ToInt32(x.Price) + sum; } </table> </div> </div> <div class="col-12 col-lg-4"> <div class="cart-summary"> <h5>Cart Total</h5> <ul class="summary-table"> <li><span>subtotal:</span> <span>$0.00</span></li> <li><span>delivery:</span> <span>Free</span></li> <li><span>total:</span> <span>$@sum</span></li> </ul> <div class="cart-btn mt-100"> <span> <a href="~/Home/Checkout" class="btn amado-btn mb-15">Checkout</a></span> <span><a href="#" class="btn amado-btn mb-15">Continue Shopping</a></span> </div> </div> </div> </div> </div>
Что я уже пробовал:
Вот как я пытаюсь повторно использовать переменную сеанса OrderTotal в представлении Checkout :
<pre> @model IEnumerable<NdinemiEshop.Product> @{ ViewBag.Title = "Cart"; Layout = "~/Views/Shared/_LayoutCart.cshtml"; } <div class="container-fluid"> <div class="row"> <div class="col-12 col-lg-8"> <div class="checkout_details_area mt-50 clearfix"> <div class="cart-title"> <h2>Checkout</h2> </div> <form action="#" method="post"> <div class="row"> <div class="col-md-6 mb-3"> @Html.EditorFor(model => model.Initiator, new { htmlAttributes = new { @class = "form-control", @placeholder = "Buyer Name" } }) @Html.ValidationMessageFor(x => x.Initiator, "", new { @class = "text-danger" }) @*<input type="text" class="form-control" id="first_name" value="" placeholder="Sender Name" required="">*@ </div> <div class="col-md-6 mb-3"> @Html.EditorFor(model => model.Recipient, new { htmlAttributes = new { @class = "form-control", @placeholder = "Recipient Name" } }) @Html.ValidationMessageFor(x => x.Recipient, "", new { @class = "text-danger" }) @*<input type="text" class="form-control" id="last_name" value="" placeholder="Recipient Name" required="">*@ </div> <div class="col-12 mb-3"> @Html.EditorFor(model => model.CardNo, new { htmlAttributes = new { @class = "form-control", @placeholder = "Card No" } }) @Html.ValidationMessageFor(x => x.CardNo, "", new { @class = "text-danger" }) @*<input type="text" class="form-control" id="company" placeholder="Company Name" value="">*@ </div> <div class="col-12 mb-3"> @Html.EditorFor(model => model.CvvNo, new { htmlAttributes = new { @class = "form-control", @placeholder = "Cvv No" } }) @Html.ValidationMessageFor(x => x.CvvNo, "", new { @class = "text-danger" }) @*<input type="email" class="form-control" id="email" placeholder="Email" value="">*@ </div> <div class="col-12 mb-3"> @Html.EditorFor(model => model.Expires, new { htmlAttributes = new { @class = "form-control", @placeholder = "Card Expiration" } }) @Html.ValidationMessageFor(x => x.Expires, "", new { @class = "text-danger" }) @*<input type="email" class="form-control" id="email" placeholder="Email" value="">*@ </div> </form> </div> </div> <div class="col-12 col-lg-4"> <div class="cart-summary"> <h5>Cart Total</h5> <ul class="summary-table"> <li><span>subtotal:</span> <span>$140.00</span></li> <li><span>delivery:</span> <span>Free</span></li> <li><span>total:</span> <span>$@Session["OrderTotal"]</span></li> </ul> </div> </div> </div> </div>
Что я упускаю?