儘管它有點不方便,但有一種方法可以更改POST變量的值。
我們可以使用Reflection將Request.Form
集合標記爲非只讀,將值更改爲我們想要的值並將其重新標記爲readonly(以便其他人無法更改值)。使用以下功能:
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[] { });
}
我測試了我的機器上的代碼,它工作正常。但是,我無法提供任何性能或可移植性保證。
對不起,沒有人設置一個答案。我的項目發生了變化,我無法承擔驗證所提供解決方案的時間。我真誠地感謝您花時間幫助我,而不是幫助未來尋找答案的人。 – MADCookie 2009-08-26 15:17:41