Kai的世界,道法自然
Kaima Studio,Android,你在哪,结对社区,手机防盗,定位寻人
博客园
首页
新闻
新随笔
联系
管理
订阅
随笔- 104 文章- 28 评论- 908
也谈UpdatePanel与UrlRewrite一起work时出现Form Action属性的问题
首先感谢老赵写了一篇文章,
http://www.cnblogs.com/JeffreyZhao/archive/2006/12/27/604373.aspx#post
其实出现这个问题,根本不是MS Ajax的失误,完全是我们没有用好URLRewrite这个东西的原因。
老赵的解决方法是重写了一个Form类,把原来的Form的Action给清空了。
能否正常工作我不知道,但是我认为“清空”,“利用默认属性”这样一类的做法是很危险的。~~~
重写Form类的,引用也有点麻烦,我觉的重写一个Page,比较方便。我在
www.365rss.cn
中的做法如下:
using
System;
using
System.IO;
using
System.Web;
using
System.Web.UI;
namespace
okpower.Utility
{
/**/
///
<summary>
///
URLRewrite 页面基类
///
作者:Kai.Ma
http://kaima.cnblogs.com
///
</summary>
public
class
URLRewritePage : Page
{
public
URLRewritePage()
{
}
protected
override
void
Render(HtmlTextWriter writer)
{
writer
=
new
FormFixerHtmlTextWriter(writer.InnerWriter);
base
.Render(writer);
}
}
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)
{
//
如果当前输出的属性为form标记的action属性,则将其值替换为重写后的虚假URL
if
(_url
!=
null
&&
string
.Compare(name,
"
action
"
,
true
)
==
0
)
{
value
=
_url;
}
base
.WriteAttribute(name, value, encode);
}
}
}
以后继承这个URLRewritePage就可以了,甚至可以进web.config设置,一劳永逸。
欢迎交流
本博客所有随笔,若未明确标示为转载或未带有原文链接,皆为原创。
本博客所有随笔版权归博客园和kai.ma所有,欢迎转载,转载请保留:
出处:http://kaima.cnblogs.com
作者:kai.ma
绿色通道:
好文要顶
关注我
收藏该文
与我联系
posted @ 2006-12-27 12:08
Kai.Ma
阅读(3118)
评论(13)
编辑
收藏
发表评论
2144425
回复
引用
查看
#1楼
2006-12-27 13:11
|
阿不
又是一种办法,不管什么办法,都是改变action的值。
回复
引用
查看
#2楼
2006-12-27 20:28
|
Jeffrey Zhao
:)
回复
引用
查看
#3楼
2006-12-28 14:23
|
阿不
@Kai.Ma
你连续PostBack三次试试看.我的第三次PostBack照样出错.
回复
引用
查看
#4楼
2006-12-28 14:35
|
阿不
似乎在ansypostback的时候,它并不是用这个方法来写action的值的。我的调试结果是这样的。
回复
引用
查看
#5楼
2006-12-28 14:38
|
阿不
OK,no problem ,我原来是直接调用
base.Render(new ActionlessHtmlTextWriter(writer));
不修改writer对象。可它一定要求要修改writer才行。晕
回复
引用
#6楼
2007-01-04 09:58
|
cnlamar[匿名][未注册用户]
不需要三次,这个方法我一直在用,第2次开始就会错误,原因很简单,aspnetajax的form不是页面上见到的那个.
回复
引用
查看
#7楼
2007-01-05 11:10
|
有容乃大
原来也是用重写了一个Form类,感觉很不方便。非常感谢楼主。
回复
引用
#8楼
2007-11-15 20:44
|
kerry jiang[未注册用户]
OnLoadComplete 里面把path再Rewrite回来
回复
引用
查看
#9楼
2007-12-21 13:22
|
江大鱼
http://www.cnblogs.com/jzywh/archive/2007/12/20/urlrewriteaction.html
回复
引用
查看
#10楼
2008-11-12 09:57
|
Jeffrey Zhao
清空?没有清空啊,是修改为URL。
你这个方法耦合度太高,标准方法是用FormAdaptor
回复
引用
#11楼
2009-12-09 10:39
|
wangjunwei[未注册用户]
出错了 根本没用
回复
引用
#12楼
2010-09-29 09:33
|
r山东分舵是否[未注册用户]
顶
回复
引用
查看
#13楼
2011-07-06 13:45
|
oyster.oy
<form action="#" 试试
在纯粹的urlrewrite 下是可以的,updatepannel 就没试过了
刷新评论列表
刷新页面
返回页首
发表评论
昵称:
[登录]
[注册]
主页:
邮箱:
(仅博主可见)
验证码:
看不清,换一个
评论内容:
登录
注册
[使用Ctrl+Enter键快速提交评论]
0
604758
IFJ9RsqfjPc=
首页
博问
闪存
新闻
园子
招聘
知识库
最新IT新闻
:
·
瑞士公司对苹果提起新专利权诉讼
·
微软看重平板市场:ARM版Win8与x86版同步推
·
多家机构上调LinkedIn目标价 维持买入评级
·
索尼诺基亚卷入裁员潮:危机中竞争更加激烈
·
Google 突袭家庭娱乐领域:为什么说收购摩托罗拉在这里会起作用
»
更多新闻...
最新知识库文章
:
·
高级编程语言的发展历程
·
如何学习一门新的编程语言?
·
学习不同编程语言的重要性
·
为什么我喜欢富于表达性的编程语言
·
计算机专业的女生为什么要学编程
»
更多知识库文章...
China-pub 2011秋季教材巡展
China-Pub 计算机绝版图书按需印刷服务
公告
最近在读的书
昵称:
Kai.Ma
园龄:
5年1个月
粉丝:
27
关注:
5
搜索
随笔分类
Android(6)
(rss)
Android软件:你在哪(9)
(rss)
ASP.NET MVC/Webform(5)
(rss)
Javascript&AJAX(38)
(rss)
SilverLight(5)
(rss)
开发环境(24)
(rss)
数据库(2)
(rss)
琐即生活(18)
(rss)
在线生成网页缩略图(WebSnap)(4)
(rss)
文章分类
[收藏]Ajax/JQuery/Javascript(6)
(rss)
[收藏]W3C标准开发(2)
(rss)
[收藏]开发工具/环境设置(4)
(rss)
[收藏]开发规范(7)
(rss)
[收藏]儒释道(1)
(rss)
[收藏]设计模式(6)
(rss)
[收藏]数据结构(1)
(rss)
[收藏]数据库(1)
(rss)
朋友的博客
JerryQu的小站
拓荒者
天行健,君子当自强不自息
儒、释、道
净空法师专辑网站
重要网站
code.google.com
MSDN Code Gallery
积分与排名
积分 - 180850
排名 - 476
最新评论
评论排行榜