问题描述
简介
我正在为nopcommerce中的购物车/购物车使用新添加的过滤器。
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 as ViewResultBase; 如果(结果==空) { 返回; }
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;
请告诉我这是否不正确或存在潜在的缺陷。谢谢