利用URLRewriter.dll伪静态时一个页面(news.aspx)可以这样写
<RewriterConfig>
<Rules>
<RewriterRule>
<LookFor>~/n_(\d+)\.html</LookFor>
<SendTo>~/news.aspx?newsId=$1</SendTo>
</RewriterRule>
</Rules>
</RewriterConfig>
但如果我还有>~/news.aspx?mId=??,和video.aspx?videoId=??我该怎样写?
注意:news.aspx一个传值是newsId,另外一个是mId
谁帮帮我,十分感谢!
<RewriterConfig>
<Rules>
<RewriterRule>
<LookFor>~/n_(\d+)\.html</LookFor>
<SendTo>~/news.aspx?newsId=$1</SendTo>
</RewriterRule>
</Rules>
</RewriterConfig>
但如果我还有>~/news.aspx?mId=??,和video.aspx?videoId=??我该怎样写?
注意:news.aspx一个传值是newsId,另外一个是mId
谁帮帮我,十分感谢!
<Rules>
<RewriterRule>
<LookFor>~/n_(\d+)\.html</LookFor>
<SendTo>~/news.aspx?newsId=$1</SendTo>
</RewriterRule> <RewriterRule>
<LookFor>~/aaaa_(\d+)\.html</LookFor>
<SendTo>~/news.aspx?mId=$1</SendTo>
</RewriterRule> <RewriterRule>
<LookFor>~/bbbb_(\d+)\.html</LookFor>
<SendTo>~/video.aspx?videoId=$1</SendTo>
</RewriterRule>
</Rules>
</RewriterConfig>
2.记得可以重写_browser form呈现(只见过,没有用过)
3.可能有原生的或者其他方法(比如使用ajax,避免整页刷新)
4.
老问题了,解决办法重写Page,让你的页面继承自类SW.PageHandler.MyPage using System;
using System.IO;
using System.Web;
using System.Web.UI;
using System.Threading;namespace SW.PageHandler
{
public class MyPage : System.Web.UI.Page
{
/// <summary>
/// 调用自己自定义的HtmlTextWriter来渲染页面
/// </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);
}
}
/// <summary>
/// 自定义HtmlTextWriter
/// </summary>
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)
{
if (_url != null && string.Compare(name, "action", true) == 0)
{
value = _url;
}
base.WriteAttribute(name, value, encode); }
}
/// <summary>
/// 自定义HtmlTextWriter
/// </summary>
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);
}
}
}
{
protected void Page_Load(object sender, EventArgs e)
{