ASP MVC、jQuery & AJAXを使用して.Net Webアプリケーションを開発しています。 製品の詳細ボタンをクリックすると、詳細ビューにリダイレクトされ、「カートに追加」ボタンが含まれていますAJAXコールを使用してユーザー認証のフォームをリダイレクト
このボタンは、次のセグメントコードをアクションとして呼び出します。私の見解では
[Authorize]
public ActionResult AddToCart(int articleId)
{
ViewBag.CartCount = 0;
List<Cart> cart = null;
if (User.Identity.IsAuthenticated)
{
if (Session["Cart"] == null)
{
cart = new List<Cart>();
cart.Add(new Cart { ArticleId = articleId, Count = 1, DateCreated = DateTime.Now });
Session["Cart"] = cart;
}
else
{
cart = Session["Cart"] as List<Cart>;
var alreadyOrdered = cart.FirstOrDefault(x => x.ArticleId == articleId);
cart.Remove(alreadyOrdered);
if (alreadyOrdered != null)
{
alreadyOrdered.Count++;
cart.Add(alreadyOrdered);
}
else
{
cart.Add(new Cart { ArticleId = articleId, Count = 1, DateCreated = DateTime.Now });
}
Session["Cart"] = cart;
}
ViewBag.CartCount = cart.Count;
return Content(cart.Count.ToString());
}
return RedirectToAction("Login", "Account");
}
私は、次のコードを持っている:
@model WebShop.Web.ViewModels.ArticleViewModel
<div class="row">
<div class="col-md-6">
<img src="http://placehold.it/400x250/000/fff"
alt="Kodak Brownie Flash B Camera"
class="image-responsive" />
</div>
<div class="col-md-6">
<div class="row">
<div class="col-md-12">
<h1>@Model.Label</h1>
</div>
</div>
<div class="row">
<div class="col-md-12">
<span class="label label-default">@Model.CategoryName</span>
<span class="label label-info">@Model.SubCategoryName</span>
</div>
</div>
<div class="row">
<div class="col-md-12">
<p class="description">
@Model.Description
</p>
</div>
</div>
<div class="row">
<div class="col-md-12 bottom-rule">
<h2 class="product-price">@Model.Price.ToString("###") €</h2>
</div>
</div>
<div class="row add-to-cart">
<div class="col-md-5 product-qty">
<span class="btn btn-default btn-lg btn-qty">
<span class="glyphicon glyphicon-plus" aria-hidden="true"></span>
</span>
<input class="btn btn-default btn-lg btn-qty" value="1" />
<span class="btn btn-default btn-lg btn-qty">
<span class="glyphicon glyphicon-minus" aria-hidden="true"></span>
</span>
</div>
<div class="col-md-4">
<button class="btn btn-lg btn-brand btn-full-width addToCart" id="@Model.Id">
Ajouter au panier
</button>
</div>
</div><!-- end row -->
<div class="row">
<div class="col-md-12 bottom-rule top-10"></div>
</div>
</div>
</div>
<script>
$(document).ready(function() {
$('.addToCart').click(function() {
var articleId = parseInt($(this).attr('id'));
$.ajax({
type: 'POST',
url: '@Url.Action("AddToCart", "Shopping")',
data: { articleId: articleId },
success: function (data) {
$('#CartModal').html(data);
console.log(data);
},
error: function (err) {
console.log(err);
}
});
});
});
</script>
を私の願いは、私は、「カートに入れる」ボタンをクリックしたときであり、ユーザーは自分が認証にリダイレクトする必要があり、認証されていませんページ(私は、ASPテンプレートを使用しているaut彼の製品の選択を続ける。 ユーザーが既に接続されている場合は、値を返す必要があります。 つまり、認証されていない場合は、ユーザーをログオンページにリダイレクトします。
このシナリオをどのように処理できますか?あなたの助けを事前に
おかげで(それはstackoverflowの中に私の最初の投稿です)
ありがとうございます*私の問題を抱えていた! – Fariid