ASP.NET使用URL重写导致回车时默认按钮不起作用

原创 2008年09月28日 23:16:00

        本人新建了一个站,开源部落http://www.openccc.com,用的是C#+ASP.NET2.0+SQL Server 2000+Microsoft Visual Studio 2005开发的。前台显示页面没几个,还不到十个呢,后台倒挺多的。

 

        全用的是参数,考虑到安全和搜索引擎收录问题,我用了(ActionlessForm.dll和URLRewriter.dll,可从微软官网下)URL重写,以前我只用URLRewriter.dll这个文件,就可实现了。如: /Show.aspx?id=1重写成/show/Pro_1.aspx,网址是输入/show/Pro_1.aspx时实际显示的内容是/Show.aspx?id=1,但我模板上有个按钮(一个文本框:tBoxSearch,一个按钮:imgBtnSearch),当鼠标落在按钮上时,浏览器状态栏会显示显示网址/Show.aspx?id=1,因此我在这个按钮前边加上了<a onMouseOver="window.status='';return true">,后边加上了</a>,用户是看不到实际了。但我打开IIS日志来时,搜索引擎老访问show.aspx,且不带参数,然后全转到我写好了的错误页面去了。原来搜索引擎还能知道这个的实际地址啊!没办法了,我就用了ActionlessForm.dll这个文件,在模板前边加上

 

<%@ Register TagPrefix="skm" Namespace="ActionlessForm" Assembly="ActionlessForm" %>

把<Form id="Form1" method="post" runat="server" defaultbutton="imgBtnSearch" >改成了<skm:Form id="skmForm" method="post" runat="server" defaultbutton="imgBtnSearch" >,

 

同时</Form >改成了</skm:Form >。这样改后,用VS就不能可视化编辑了,说组件出错。

 

      不过不影响运行,前边的问题解决了,又来了一个新的:回车时我设置的默认按钮不起作用了,要用鼠标点(defaultbutton="imgBtnSearch"),没办法,我网上查了下,知道了解决方法:在.CS文件加上

 

tBoxSearch.Attributes.Add("onkeydown", "return GetFocus();");其中 tBoxSearch是输入文本框。

 

然后在.aspx里加上

 

<script type="text/javascript">
        function GetFocus()
        {
            if(event.keyCode==13)
            {
                 document.getElementById("ctl00_imgBtnSearch").click();
              return false;
             }
        }
    </script>

 

      其中ctl00_imgBtnSearch是运行后那个按钮的ID,不运行时按钮ID是imgBtnSearch,运行我查看源代码变成了ctl00_imgBtnSearch,我就写这个,有的如Button1运行后还是Button1,那要看实际情况了。

      这样就OK了!

页面中设置默认的回车激活按钮, ASP.NET DefaultButton 属性

当HTML页面中有多个页面的时候,回车会默认绑定到第一个按钮上面,如何设置回车的激活按钮 这里有两个方法:第一:ASP.NET DefaultButton 属性,利用Panel 控件绑定控件ID,格式...
  • llll29550242
  • llll29550242
  • 2011年03月25日 11:52
  • 4628

asp.net中的URL重写功能

1.3  URL重写功能URL重写功能就是接受带有有效命名约定的URL,把它们转化为查询字符串。需要有效命名约定的两个原因是:将信息组织到逻辑层次结构中,以及隐藏查询字符串参数。本节将说明URL重写功...
  • zhoufoxcn
  • zhoufoxcn
  • 2007年03月01日 18:11
  • 3931

asp.net mvc web url 伪静态页面重写技术

1。该操作在Application_BeginRequest 中完成;   String path = Request.FilePath.ToString();   ///获取当前请求的虚拟路径...
  • zhou349398998
  • zhou349398998
  • 2011年09月28日 15:24
  • 1746

asp.net不用设置iis实现url重写 类似伪静态路由

程序要调整地部分只有两块. 一是web.config文件. 二是链接地址. 所需urlrewrite.dll 首先下载urlrewriter:http://download.microso...
  • shan1774965666
  • shan1774965666
  • 2015年04月04日 03:14
  • 726

使用Global.asax实现ASP.Net的URL重写

URL重写也就是让动态页面伪装成“静态页面”,一方面可以隐藏真实的页面文件地址,另一方面对被搜索引擎的也有好处。(在不支持URLWRITE.NET组件的空间里面这是最好的方法)     在ASP...
  • lzid2008
  • lzid2008
  • 2013年07月05日 21:21
  • 974

ASP.NET 自定义URL重写

一.功能说明: 可以解决类似 http://nature-cn.cn/mobile 情形,Url路径支持正则匹配。 二.操作步骤: 1.增加URL重写模块: usi...
  • a497785609
  • a497785609
  • 2014年10月31日 16:05
  • 1425

asp.net 页面url重写

asp.net 页面url重写 不更改情况下,页面路径为index.aspx?id=1,现在输入页面路径index/1时,也能访问到页面,这一过程叫做url重写 ①:在一个类里制定路径重写规则...
  • LanSeTianKong12
  • LanSeTianKong12
  • 2017年04月14日 14:55
  • 638

ASP.NET MVC URL重写与优化(进阶篇)-继承RouteBase玩转URL

在初级篇中,我们介绍了如何利用基于ASP.NET MVC的Web程序中的Global文件来简单的重写路由。也介绍了它本身的局限性-依赖于路由信息中的键值对:   如果键值对中没有的值,我们无法将...
  • lwj0310
  • lwj0310
  • 2014年06月21日 14:38
  • 2319

IIS下的URL重写无效问题

使用 UrlRewriter.dll 实现的URL重写在 VS2008中测试通过,但在IIS下无效,返回404 原因: 主要是IIS应用程序扩展名映射,iis的工作流程应该是遇到.aspx扩展名...
  • ptyzhu
  • ptyzhu
  • 2012年08月21日 23:04
  • 4557

利用URLRewriter重写url地址-实现伪静态

ASP.net
  • Sunny_Ran
  • Sunny_Ran
  • 2017年07月10日 16:04
  • 523
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ASP.NET使用URL重写导致回车时默认按钮不起作用
举报原因:
原因补充:

(最多只允许输入30个字)