asp.net 伪静态求解,,,

cf370697816 2011-09-14 01:20:48
用的ISAPI_Rewrite,配置代码如下,,

[ISAPI_Rewrite]

# 3600 = 1 hour
CacheClockRate 3600

RepeatLimit 32

# Protect httpd.ini and httpd.parse.errors files
# from accessing through HTTP
RewriteRule ^/httpd(?:\.ini|\.parse\.errors).* [F,I,O]

RewriteRule ^/default\.html$ /default\.aspx
RewriteRule ^/admin/showcustomer/(\d+)\.html$ /admin/showcustomer.aspx\?customerid=$1

现在的问题是,页面里给个链接为<a href="/admin/showcustomer/<%#Eval("CustomerID")%>.html" target="_self"><%#Eval("CustomerName")%></a>,能链接到伪静态页,但是在showcustomer.aspx页面里,有上一页,下一页等效果,点击下一页,链接就变成了http://localhost/admin/showcustomer/showcustomer.aspx?customerid=7,,怎么回事呀?
...全文
131 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
sihonglaoren 2011-09-15
  • 打赏
  • 举报
回复
你们都没有小鸡鸡
likevs 2011-09-14
  • 打赏
  • 举报
回复
在你的网站的App_Code专用文件夹里添加下面这个类,当然,类名你觉得不爽可以自己修改

using System;
using System.IO;
using System.Web;
using System.Web.UI;

namespace MyURL
{
/// <summary>
///URL重写回调辅助类
/// </summary>
public class MyOLPage : Page
{
public MyOLPage()
{ }
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)
{
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);
}
}

}





//然后,找到你的那个showcustomer.aspx.cs文件,找到

public partial class showcustomer : System.Web.UI.Page

把它替换成:

public partial class showcustomer : MyURL.MyOLPage


//至于为什么要这样,你百度一下吧
dangong123 2011-09-14
  • 打赏
  • 举报
回复
CSDN里专门能看到一些求骂的人。。可能IT做多了,压力太大扭曲了心理
子游自在 2011-09-14
  • 打赏
  • 举报
回复
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sihonglaoren 的回复:]
这年头什么都是伪的,假冒伪劣害死人,所以中国的程序员就是垃圾。
[/Quote]


对于LZ这个帖子,我只看到了这里我就想骂这个人了.

实在是想不出,这货是那里的.
qingYun1029 2011-09-14
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 cf370697816 的回复:]

引用 7 楼 qingyun1029 的回复:
帮你找到了。
你在项目中新建一个类,类名OLPage,内容如下,直接复制就好了,然后让需要防止你说的情况发生的页面,将继承的Page类改成OLPage类就可以了。。


C# code

using System;
using System.Collections.Generic;
using System.Linq;
usin……
[/Quote]

呵呵是的,不好意思!

为什么不用UrlRewrite呢?
sihonglaoren 2011-09-14
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 x363961461 的回复:]
引用 1 楼 sihonglaoren 的回复:
这年头什么都是伪的,假冒伪劣害死人,所以中国的程序员就是垃圾。


如果我要是因为你这句话骂你全家是白痴,你怎么想?
[/Quote]
那我只说一句,你全家也是。
cf370697816 2011-09-14
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 qingyun1029 的回复:]
帮你找到了。
你在项目中新建一个类,类名OLPage,内容如下,直接复制就好了,然后让需要防止你说的情况发生的页面,将继承的Page类改成OLPage类就可以了。。


C# code

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Syste……
[/Quote]
首先非常感谢你的热心,但是这个好像是微软的页面重写的才有用吧,我用的是ISAPI_Rewrite 组件,,
cf370697816 2011-09-14
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 dragon_yx 的回复:]
你是用控件开发的?

用控件的话不知道怎么改。


直接写个分页程序吧,那样好控制。
[/Quote]
分页不是用的控件,用的存储过程,
dragon_yx 2011-09-14
  • 打赏
  • 举报
回复
你是用控件开发的?

用控件的话不知道怎么改。


直接写个分页程序吧,那样好控制。
qingYun1029 2011-09-14
  • 打赏
  • 举报
回复
帮你找到了。
你在项目中新建一个类,类名OLPage,内容如下,直接复制就好了,然后让需要防止你说的情况发生的页面,将继承的Page类改成OLPage类就可以了。。


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.IO;

/// <summary>
///OLPage 的摘要说明
/// </summary>
public class OLPage : Page
{
public OLPage()
{
//
//TODO: 在此处添加构造函数逻辑
//
}

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)
{
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);
}
}

Gemini Dean 2011-09-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sihonglaoren 的回复:]
这年头什么都是伪的,假冒伪劣害死人,所以中国的程序员就是垃圾。
[/Quote]
不懂是哪里冒出来的。
不懂,顶一下
qingYun1029 2011-09-14
  • 打赏
  • 举报
回复
自己百度一下。

伪静态 防止回发
CalvinR 2011-09-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sihonglaoren 的回复:]

这年头什么都是伪的,假冒伪劣害死人,所以中国的程序员就是垃圾。
[/Quote]
难道你没听过为静态这个术语!!
x363961461 2011-09-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sihonglaoren 的回复:]
这年头什么都是伪的,假冒伪劣害死人,所以中国的程序员就是垃圾。
[/Quote]

如果我要是因为你这句话骂你全家是白痴,你怎么想?
cf370697816 2011-09-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sihonglaoren 的回复:]
这年头什么都是伪的,假冒伪劣害死人,所以中国的程序员就是垃圾。
[/Quote]
冒昧问句,你是哪国的?
sihonglaoren 2011-09-14
  • 打赏
  • 举报
回复
这年头什么都是伪的,假冒伪劣害死人,所以中国的程序员就是垃圾。

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧