解决地址无法发给好友

         在*.aspx页面中,表单默认的提交方式是“post”,表单采用post方式提交时,浏览器地址栏将不会显示参数的传递,这样带来的一个问题就是用户不能将地址复制发送给好友。

   要想址复制发送给其他人是也能看到正确的页面,我们必须将表单的提交方式设为get,即method=“get”,采用get方式提交要将form表单的runat=“Server”去掉。因为

 ViewState在URL中,只有去掉 runat=server,才会完全去掉ViewState,。

          由此,有带来了一个新的问题,表单中的所有(除了DataBound数据控件)服务器控件将变得不可用,只能使用html控件。

(Repeater、ObjectDataSource之类数据绑定控件不需要runat=server的form也可以,但是VS总是提示,去源代码视图拖放、让他生成再手动删掉)。在使用html控件时要注意

 表单中的控件的name属性赋值。不指定name属性,将不会出现在querystring中。

          而对于input不能只指定id,还要指定name,否则不会出现在querystring中。Id是供Javascript用的,name是供querystring/Request用的。对于type=submit的input来说,

          只有被点击的input的name、value才会被提交给服务器。

   具体的步骤:

   1、要删掉form的runat=server,添加method="get"和action=“...”
 2、所有除了DataBound控件(比如GridView、Repeater等)都要用HTML控件。Repeater、ObjectDataSource之类控件不需要runat=server的form也可以,但是VS总是提示,去
 源代码视图拖放、让他生成再手动删掉。
 3、控件注意要给表单name属性赋值。
 4、在后台Page_Load代码中进行响应
 5、IsPostBack不再有用,只能通过判断参数是否为空来判断是否是提交的页面。if(string.IsNullOrEmpty(Request["Kw"]))
 
posted @ 2010-10-07 16:01  泪的诺言lni  阅读(268)  评论(0编辑  收藏  举报