C# 使用filterContext nopcommerce为购物车项目添加警告
导言 我正在为nopcommerce中的shoppingcart/cart使用新添加的过滤器C# 使用filterContext nopcommerce为购物车项目添加警告,c#,asp.net,asp.net-mvc,nopcommerce,nop,C#,Asp.net,Asp.net Mvc,Nopcommerce,Nop,导言 我正在为nopcommerce中的shoppingcart/cart使用新添加的过滤器 public void OnActionExecuted(ActionExecutedContext filterContext) { bool IsShoppingCart = (filterContext.RouteData.Values["controller"].Equals("ShoppingCart") &am
public void OnActionExecuted(ActionExecutedContext filterContext)
{
bool IsShoppingCart = (filterContext.RouteData.Values["controller"].Equals("ShoppingCart")
&& (filterContext.RouteData.Values["action"].Equals("Cart")));
var result = filterContext.Result as ViewResultBase;
if (result == null){return;}
var model = result.Model;
//get model and add warnings for items in the model
}
cartitems中传递了警告,因此可以
显示。例如,当我们添加到时出现“产品已删除”警告
购物车项目和删除产品
问题
我正在尝试获得一个解决方案,我可以在过滤器中添加/编辑警告并返回响应。因此,我的自定义警告将在存在时添加到购物车。自定义警告可以是我的业务逻辑中的任何内容
如果有人有主意,请帮忙。谢谢你的时间。我已经成功地做到了下面这样 var result=filterContext.result作为ViewResultBase; 如果(结果==null) { 返回; } 请让我知道,如果这是不正确的或有潜在的缺点。谢谢
var itm = result.ViewData.Model as dynamic;
foreach (Nopcommerce.Web.Models.ShoppingCart.ShoppingCartModel.ShoppingCartItemModel item in itm.Items)
{
if (l.Item.ProductId == item.ProductId)
{
item.Warnings.Add("new warning.");
}
}
//update with modified entries
result.ViewData.Model = itm as Nopcommerce..Web.Models.ShoppingCart.ShoppingCartModel;