国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

asp.net url重寫后頁面回傳問題

2024-07-10 13:18:55
字體:
供稿:網(wǎng)友
具體辦法如下:可以通過自定義頁面基類,重寫默認(rèn)的HtmlTextWriter方法,重寫屬性輸出WriteAttribute(string name, string value, bool encode)方法,當(dāng)輸出action時(shí),將action屬性的值強(qiáng)制轉(zhuǎn)換為當(dāng)前虛URL(HttpContext.Current.Request.RawUrl,上面的~/showVisasAll_(/w+)/.aspx)
最后就是讓所有的頁面都調(diào)用這個(gè)基類,修改一下Web.config就好了
<!-- Openlab.Controls.OLPage為頁面基類,Openlab.Controls為基類所在dll -->
<pages pageBaseType="Openlab.Controls.OLPage, Openlab.Controls"/>
附頁面基類完整代碼(參考CS代碼完成):

復(fù)制代碼 代碼如下:


using System;
using System.IO;
using System.Web;
using System.Web.UI;
namespace Openlab.Controls
...{
/**//// <summary>
/// 頁面基類
/// </summary>
public class OLPage : Page
...{
public OLPage()
...{
}
Render#region Render
/**//// <summary>
/// 重寫默認(rèn)的HtmlTextWriter方法,修改form標(biāo)記中的value屬性,使其值為重寫的URL而不是真實(shí)URL。
/// </summary>
/// <param></param>
protected override void Render(HtmlTextWriter writer)
...{
if (writer is System.Web.UI.Html32TextWriter)
...{
writer = new FormFixerHtml32TextWriter(writer.InnerWriter);
}
else
...{
writer = new FormFixerHtmlTextWriter(writer.InnerWriter);
}
base.Render(writer);
}
#endregion
}
FormFixers#region FormFixers
FormFixerHtml32TextWriter#region FormFixerHtml32TextWriter
internal class FormFixerHtml32TextWriter : System.Web.UI.Html32TextWriter
...{
private string _url; // 假的URL
internal FormFixerHtml32TextWriter(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);
}
}
#endregion
FormFixerHtmlTextWriter#region FormFixerHtmlTextWriter
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)
...{
if (_url != null && string.Compare(name, "action", true) == 0)
...{
value = _url;
}
base.WriteAttribute(name, value, encode);
}
}
#endregion
#endregion
}

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 资源县| 阿克苏市| 姚安县| 庆云县| 延安市| 得荣县| 固原市| 辉县市| 玉林市| 图木舒克市| 如东县| 施秉县| 全椒县| 德兴市| 若尔盖县| 九龙县| 洞口县| 沁水县| 巩义市| 峨山| 桂东县| 南雄市| 额敏县| 英德市| 襄垣县| 亚东县| 安泽县| 金山区| 长岭县| 边坝县| 本溪市| 航空| 陕西省| 惠东县| 沙河市| 灵宝市| 阿克苏市| 景谷| 台东市| 四子王旗| 德阳市|