通过ASP修改表单值..NET MVC动作过滤器
本文关键字:MVC 过滤器 NET ASP 修改 表单 通过 | 更新日期: 2023-09-27 18:19:16
我试图通过MVC动作过滤器修改添加到购物车的产品数量。这是我的,但它不工作:
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
var settings = _settingService.LoadSetting<RRGamesBaseSettings>();
var customer = _workContext.CurrentCustomer;
if (customer.IsInCustomerRole(settings.ResellerRoleSystemName))
{
var productId = Convert.ToInt32(filterContext.ActionParameters["productId"]);
var formCollection = new FormCollection(filterContext.Controller.ControllerContext.HttpContext.Request.Form);
var productService = EngineContext.Current.Resolve<IRRGamesProductService>();
var product = productService.GetProductById(productId);
int quantity = 0;
string fieldName = string.Format("addtocart_{0}.EnteredQuantity", productId);
int.TryParse(formCollection[fieldName], out quantity);
if (product != null)
{
if (quantity < product.CaseQuantity)
{
quantity = product.CaseQuantity;
formCollection[fieldName] = quantity.ToString();
}
}
}
base.OnActionExecuting(filterContext);
}
当我将formCollection[formKey]设置为新的数量时,当它转到控制器动作时,它不会更新表单值
我明白了,这很简单
formCollection.Set(fieldName, quantity.ToString());
filterContext.ActionParameters["form"] = formCollection;