Несмотря на то, что это немного странно, есть способ изменить значение переменной POST.
Мы можем использовать Reflection, чтобы пометить коллекцию Request.Form
как не предназначенную только для чтения, изменить значение на то, что нам нужно, и снова пометить его как только для чтения (чтобы другие люди не могли изменять значения). Используйте следующую функцию:
protected void SetFormValue(string key, string value)
{
var collection = HttpContext.Current.Request.Form;
// Get the "IsReadOnly" protected instance property.
var propInfo = collection.GetType().GetProperty("IsReadOnly", BindingFlags.Instance | BindingFlags.NonPublic);
// Mark the collection as NOT "IsReadOnly"
propInfo.SetValue(collection, false, new object[] { });
// Change the value of the key.
collection[key] = value;
// Mark the collection back as "IsReadOnly"
propInfo.SetValue(collection, true, new object[] { });
}
Я проверил код на моей машине, и он отлично работает. Однако я не могу дать никаких гарантий производительности или переносимости.