现在我已经能够实现URL重写,比方说以前的网址是http://localhost/abc/shops.aspx?ID=1&ID1= 现在我输入http://localhost/abc/shop1.aspx是可以访问到第一个网址的,现在我的问题就是在http://localhost/abc/menu.aspx 下我有一个按钮 这个按钮的HTML代码下我写死了一个路径href="shops.aspx?ID=1&ID1="; 现在我想点击这个按钮 转到shops.aspx这个页面 地址栏能够出现http://localhost/abc/shop1.aspx 不知道该如何实现呢?我也看了很多代码,这个问题是不是就是回发的问题?我也用了微软的那个例子 还有网上其他的 可是不管
===我贴一下处理回发的代码(不知道是不是处理这个问题的,或许是我理解错误)============using System;
using System.IO;
using System.Web;
using System.Web.UI;namespace URL
{
/**//// <summary>
/// 页面基类www.knowsky.com
/// </summary>
public class OLPage : Page
{
public OLPage()
{
} /**//// <summary>
/// 重写默认的HtmlTextWriter方法,修改form标记中的value属性,使其值为重写的URL而不是真实URL。
/// </summary>
/// <param name="writer"></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);
} }
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)
{
// 如果当前输出的属性为form标记的action属性,则将其值替换为重写后的虚假URL
if (_url != null && string.Compare(name, "action", true) == 0)
{
value = _url;
}
base.WriteAttribute(name, value, encode);
}
} 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);
}
}}==================================
说以上代码编译成一个dll,然后在工程引用好,页面集成就可以了,我试了一下,可是不管用~还请懂行的大哥大姐指点一下,拒绝贴网址~哪怕指点一下,不胜感激
===我贴一下处理回发的代码(不知道是不是处理这个问题的,或许是我理解错误)============using System;
using System.IO;
using System.Web;
using System.Web.UI;namespace URL
{
/**//// <summary>
/// 页面基类www.knowsky.com
/// </summary>
public class OLPage : Page
{
public OLPage()
{
} /**//// <summary>
/// 重写默认的HtmlTextWriter方法,修改form标记中的value属性,使其值为重写的URL而不是真实URL。
/// </summary>
/// <param name="writer"></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);
} }
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)
{
// 如果当前输出的属性为form标记的action属性,则将其值替换为重写后的虚假URL
if (_url != null && string.Compare(name, "action", true) == 0)
{
value = _url;
}
base.WriteAttribute(name, value, encode);
}
} 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);
}
}}==================================
说以上代码编译成一个dll,然后在工程引用好,页面集成就可以了,我试了一下,可是不管用~还请懂行的大哥大姐指点一下,拒绝贴网址~哪怕指点一下,不胜感激
解决方案 »
- 小弟有一个问题:一个静态页,里面一个input输入年份,一个input点击可转到年份的页面,小弟不知道如何根据input中的值转到固定页面,说不清楚,请看代码!
- 可不可以帮我调试一下这个程序,快疯啦
- gridView数据刷新 页面无刷新
- 请大家帮忙写一个SQL语句.送分50。
- 有谁知道这个网站
- 散分!!
- 论坛过滤脏话(做过论坛的高手进)
- 在asp.net中如何屏蔽ie上方的前进和后退按钮!!!!!!!!!!!
- 斑竹和大虾们-----<%#怎么弄个动态文章,看我的怎么会这样?%>
- 求大佬分享,用Aps.NET MVC做的青鸟朋友网项目,本人菜鸟,技术有限
- 感觉比较难的一个试图的建立!
- 寻找跨框架下拉菜单,要三级的
PS:贴出的代码作废~此代码是解决回发问题