我想在用户使用 Toastr 插件单击“添加到购物车”按钮时显示通知。基本上,当用户单击按钮时,它会执行“AddToCart”操作,然后重定向到索引页面。当页面出现时,它会检查 TempData 值,然后显示通知。
这是 Controller :
public ActionResult AddToCart(int id)
{
TempData["message"] = "Added";
return RedirectToAction("Index");
}
和 View :
@if (TempData["message"] != null)
{
<script type="text/javascript">
$(document).ready(function () {
toastr.success('Added')
})
</script>
}
更新 它根据@Exception 的回答工作。但是,如果我使用 ajax,例如:
@Ajax.ActionLink("Add to cart", "AddToCart", "Home", new { id = item.ProductId }, new AjaxOptions { UpdateTargetId="abc"})
它不起作用。这可能是因为这条线:
$(document).ready(function ()
因为页面没有重新加载。 我该如何解决?
但这行不通。 请帮忙。提前致谢!
最佳答案
答案1:
<script type="text/javascript">
$(document).ready(function () {
if('@TempData["message"]' == "Added"){
toastr.success('Added');
}
else{ }
});
</script>
答案2:
尽管 TempData
在一次重定向中保留其值,但有时它会产生问题(建议避免使用 TempData
),在这种情况下您可以这样做:
public ActionResult AddToCart(int id)
{
.........
return RedirectToAction("Index", new { message="Added" }); //Send Object Route//
}
public ActionResult Index(string message)
{
.........
if(!string.IsNullOrEmpty(message)) {
Viewbag.message=message;
}
return View();
}
<script type="text/javascript">
$(document).ready(function () {
if('@Viewbag.message' == "Added") {
toastr.success('Added');
}
else{ }
});
</script>
关于javascript - ASP.NET MVC 4 中的 Toast 通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25300557/