.Net 下的伪静态为题

问题描述

有没有遇到过控件事件提交地址错误的问题应用了url重写比如说a1234.html?type=alter可以正确解析为a.aspx?id=1234&type=alter但是如果点击了页面上的控件回传地址会变成a1234.html?id=1234&type=alter解析为a.aspx?id=1234&id=1234&type=alter导致无法得到id参数00~能想到的办法是。。去掉伪静态但是不现实。。修改页面去控件改用form提交或ajax提交。。工作量好大拜求

解决方案

解决方案二:
this.h_id=Request.QueryString["id"]!=null?int.TryParse(Request.QueryString["id"].ToString(),outnum)?num:0:0;

其实是因为是这样获取参数才取不到参数的==b
解决方案三:
那改下获取方式?intid=Request.QueryString.GetValues("id")!=null&&Request.QueryString.GetValues("id").Length>0?Convert.ToInt32(Request.QueryString.GetValues("id")[0]):0;或者伪静态再增加一条规则:已带id参数的,转址就不再加id参数
解决方案四:
修改页面控件重写提交方法
解决方案五:
引用2楼qqm05的回复:

那改下获取方式?intid=Request.QueryString.GetValues("id")!=null&&Request.QueryString.GetValues("id").Length>0?Convert.ToInt32(Request.QueryString.GetValues("id")[0]):0;或者伪静态再增加一条规则:已带id参数的,转址就不再加id参数

参数取到了但还是不知道为什么回传地址会变。。
解决方案六:
引用4楼Aylein的回复:

Quote: 引用2楼qqm05的回复:
那改下获取方式?intid=Request.QueryString.GetValues("id")!=null&&Request.QueryString.GetValues("id").Length>0?Convert.ToInt32(Request.QueryString.GetValues("id")[0]):0;或者伪静态再增加一条规则:已带id参数的,转址就不再加id参数

参数取到了但还是不知道为什么回传地址会变。。

click事件中给地址加了id参数?没有页面代码不好判断
解决方案七:
好乱。修改页面控件重写提交方法。不要乱写代码。
解决方案八:
重写下基类publicclassUrlReWritePageBase:Page{protectedoverridevoidRender(HtmlTextWriterwriter){if(writerisSystem.Web.UI.Html32TextWriter){writer=newFormFixerHtml32TextWriter(writer.InnerWriter);}else{writer=newFormFixerHtmlTextWriter(writer.InnerWriter);}base.Render(writer);}}internalclassFormFixerHtml32TextWriter:System.Web.UI.Html32TextWriter{privatestring_url;//假的URLinternalFormFixerHtml32TextWriter(TextWriterwriter):base(writer){_url=HttpContext.Current.Request.RawUrl;}publicoverridevoidWriteAttribute(stringname,stringvalue,boolencode){if(_url!=null&&string.Compare(name,"action",true)==0){value=_url;}base.WriteAttribute(name,value,encode);}}internalclassFormFixerHtmlTextWriter:System.Web.UI.HtmlTextWriter{privatestring_url;internalFormFixerHtmlTextWriter(TextWriterwriter):base(writer){_url=HttpContext.Current.Request.RawUrl;}publicoverridevoidWriteAttribute(stringname,stringvalue,boolencode){if(_url!=null&&string.Compare(name,"action",true)==0){value=_url;}base.WriteAttribute(name,value,encode);}}
解决方案九:
如果不反思,那么一个谎之后,用五个谎去圆,理由总是说“不说谎是不现实的”。

时间: 2024-10-04 17:47:29

.Net 下的伪静态为题的相关文章

Nginx下WordPress伪静态设置教程

对于Apache和Nginx的对比网上也是一大堆了,这里就不再赘述,以后有机会详细讲解. 相信用Wordpress的博主们都会用到伪静态,伪静态的好处是对搜索引擎友好,看起来也好看. 用虚拟主机的用户大都是用Apache,Apache的伪静态Wordpress支持很好,几乎不用自己去编辑.喜爱折腾,喜爱独立博主们用VPS的还是很多的,Nginx在VPS中作为架设环境还是挺常见,但是用Nginx时Wordpress就变成瞎子一般,这里就怎样在Nginx下设置伪静态. 我们不需要了解怎样写伪静态,不

IIS7下的伪静态与域名301配置

今晚帮一个客户做他们公司的官网.最后,肯定为了做seo需要帮他们搞搞伪静态了...看了看他们的服务器原来是IIS7,哎...还以为是apache iis不知咋整,之前都是正apache的. 那到底IIS下的伪静态与域名301要怎么实现呢?不怕我们可以去找google,哈哈. Google了下,还蛮多,试了试那么几个总结了个可以正常工作的,这里记录下,方便自己以后查找或者你我他搜到这文章,嘿嘿... 第一步.在根目录新建一个文件"web.config",对应apache的就是.hacce

LNMP下WordPress伪静态规则配置

更换了 VPS,就要开始给网站搬家,搬家出现的第一个问题就是 WordPress 的伪静态问题.新的VPS 采用了 LNMP 环境,安装的是 AMH 面板.之前使用的是LAMP环境的 Webmin,但是 Webmin 功能过于臃肿复杂,比较耗内存,而且Nginx 对比 Apache 更高效稳定.所以这次决定采用 LNMP 环境.虽说这样比较折腾,但是只有去折腾才会有意外的收获. Nignx 不支持 .htaccess 伪静态规则,需要修改 Nignx 相应的配置文件添加伪静态规则,以下记录了整个

PHP开发框架kohana3.3.1在nginx下的伪静态设置例子_nginx

Kohana 是一款纯 PHP5 的框架,基于 MVC 模式开发, 它的特点就是高安全性,轻量级代码,容易使用,并且最新的kohana3支持HMVC模式.以下是在nginx环境下的kohana伪静态配置参考例子: server { listen 80; server_name 55zaza; index index.html index.htm index.php default.html default.htm default.php; root /home/wwwroot/55zaza; #

LNMP下WordPress伪静态配置教程

lnmp采用的是nginx,而不是apache,所以不如apache直接丢htaccess文件到网站根目录就可以生效伪静态. 首先,默认安装的lnmp环境中已经有伪静态文件wordpress.conf文件在"/usr/local/nginx/conf/wordpress.conf"中,我们可以核对一下里面的编译代码是不是为:  代码如下 复制代码 if (-f $request_filename/index.html){ rewrite (.*) $1/index.html break

apache中伪静态配置和使用(Apache虚拟主机下Discuz伪静态)_Linux

一 打开 Apache 的配置文件 httpd.conf . 二 将#LoadModule rewrite_module modules/mod_rewrite前面的#去掉 三 在 httpd.conf中添加: <IfModule mod_rewrite.c> RewriteEngine On #RewriteCond %{ENV:SCRIPT_URL} (?:index|dispbbs)[-0-9]+\.html RewriteRule ^(.*?(?:index|dispbbs))-([-

利用Nginx下伪静态规则解决“No input file specified”问题

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 昨天把博客转到了新的空间,解析了域名,今天发现能ping通了,首页能打开,但是点击详细页面的时候却发现网页一片空白,只有一行提示字:No input file specified. 网上搜索了一下,有各种说法,都未能解决.后来找到比较接近成功的解决方法,就是添加如下伪静态规则: RewriteEngine?On RewriteBase?/ R

phpcms nginx下伪静态规则写法

我phpcms v9网站主机是华夏名网的,服务器是nginx1.2.1的,我在自定义伪静态里面写的伪静态规则是 rewrite ^tag/(.*) index.php?m=content&c=tag&a=lists&tag=$1 last; 但是不起作用.问客服,连伪静态的概念都没弄清楚. 经过一番摸索,正确的nginx下的伪静态规则写法是:  代码如下 复制代码 rewrite ^/tag/(.*)$ /index.php?m=content&c=tag&a=li

Apache,IIS下Discuz x1.5伪静态设置方法_服务器其它

1.如是Apache服务器,操作如下: 建立.htaccess文件,在该文件里面写入如下伪静态规则: 复制代码 代码如下: # 将 RewriteEngine 模式打开 RewriteEngine On # 修改以下语句中的 /discuz 为你的论坛目录地址,如果程序放在根目录中,请将 /discuz 修改为 / RewriteBase /discuzxx # Rewrite 系统规则请勿修改 RewriteCond %{QUERY_STRING} ^(.*)$ RewriteRule ^to