首先感謝老趙寫了一篇文章,
http://www.cnblogs.com/JeffreyZhao/archive/2006/12/27/604373.aspx#post其實出現(xiàn)這個問題,根本不是MS Ajax的失誤,完全是我們沒有用好URLRewrite這個東西的原因。
老趙的解決方法是重寫了一個Form類,把原來的Form的Action給清空了。
能否正常工作我不知道,但是我認為“清空”,“利用默認屬性”這樣一類的做法是很危險的。~~~
重寫Form類的,引用也有點麻煩,我覺的重寫一個Page,比較方便。我在
www.365rss.cn中的做法如下:
using System;
using System.IO;
using System.Web;
using System.Web.UI;
namespace okpower.Utility
{
/**//// <summary>
/// URLRewrite 頁面基類
/// 作者:Kai.Ma http://kaima.cnblogs.com
/// </summary>
public class URLRewritePage : Page
{
public URLRewritePage()
{
}
protected override void Render(HtmlTextWriter writer)
{
writer = new FormFixerHtmlTextWriter(writer.InnerWriter);
base.Render(writer);
}
}
internal class FormFixerHtmlTextWriter : System.Web.UI.HtmlTextWriter
{
private string _url;
internal FormFixerHtmlTextWriter(TextWriter writer)
: base(writer)
{
_url = HttpContext.Current.Request.RawUrl;
}
public override void WriteAttribute(string name, string value, bool encode)
{
// 如果當(dāng)前輸出的屬性為form標(biāo)記的action屬性,則將其值替換為重寫后的虛假URL
if (_url != null && string.Compare(name, "action", true) == 0)
{
value = _url;
}
base.WriteAttribute(name, value, encode);
}
}
} 以后繼承這個URLRewritePage就可以了,甚至可以進web.config設(shè)置,一勞永逸。
歡迎交流