修改 Request.Form["xxx"] 的值
---------------------ASP.NET CORE---------------------
在Core里面 Request.Form["xxx"]="yyy" 是不被允许的,Request.Form["xxx"]被标记为只读,变通的做法是替换IFormCollection:
Dictionary<string, Microsoft.Extensions.Primitives.StringValues> dictValues = new Dictionary<string, Microsoft.Extensions.Primitives.StringValues>(); foreach (string key in Request.Form.Keys) { dictValues.Add(key, Request.Form[key]); } //在此处修改字典dictValues的值 //dictValues["xxx"] = "yyyy"; FormCollection fc = new FormCollection(dictValues); Request.Form = fc;
新建一个 FormCollection,替换 Request.Form
---------------------ASP.NET MVC---------------------
通过反射手段在运行时去除Request.Form["xxx"]的只读标记:
Request.Form.GetType().BaseType.BaseType.GetField("_readOnly", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).SetValue(Request.Form, false); Request.Form["xxx"] = Description;
2021-01-13
ASP.NET CORE

蔡大卫,广东揭阳人氏,现居深圳,从事互联网行业,专注程序编码工作19年。目前正在创业。
发布评论