我们有第三方控件发布两次相同的表单参数。我们现在想要修补问题并通知他们,以便我们可以继续使用他们的控件。如何修改发布到MVC控制器的操作方法的表单参数?修改MVC表单收集参数抛出NotSupportedException
public ActionResult Index()
{
var httpParams = this.HttpContext.Request.Params;
if (httpParams["form_element"] != null) {
httpParams["form_element"] = "some new value"; // NotSupportedException: Collection is read-only
}
return new CustomActionResult(this);
}
试图改变请求参数不起作用 - 它会抛出一个NotSupportedException
。有没有办法重定向这个请求,或者我们是否需要一些自定义的HTTPHandler/Module来支持这个改变?我们希望在处理响应之前控制请求主体值。
我不认为你可以。但即使可以,在您更新之后,您打算如何处理request.Params集合?您可能需要考虑使用特定的模型参数和自定义模型联编程序,以便控制其创建方式。 –
本 - 我尝试使用自定义模型联编程序来修改FormCollection参数,但这没有帮助,因为专有的CustomActionResult没有使用模型 - 它只使用Request.Form,所以它不会帮助。 – SliverNinja