Google自定义搜索代码作为表单标记提供。但是,Asp.net只允许在页面上使用单个表单标记。实现其代码的最佳方法是什么,以便将其包含在aspx页面上(比如作为主页或导航元素的一部分)。
答案 0 :(得分:7)
您可以在ASP.NET页面上拥有多个表单标记。限制在服务器端(runat =“server”)表单标记上。
只要只有一个具有runat =“server”属性而另一个不包含在另一个中,您可以实现两个表单标记(或更多)。例如:
<body>
<form action="http://www.google.com/cse" id="cse-search-box"> ... </form>
<form runat="server" id="aspNetform"> ... </form>
<body>
答案 1 :(得分:2)
您可以拥有多个表单标记,但请注意它们不能嵌套。在这种情况下你会遇到各种各样的怪异(例如,我已经看到嵌套表单的开始标记显然被忽略然后它的结束标记最终关闭“父”表单的情况)。
答案 2 :(得分:1)
您需要删除表单标记并使用javascript发送查询。看一下 http://my6solutions.com/post/2009/04/19/Fixing-Google-Custom-Search-nested-form-tags-in-asp-net-pages.aspx
我也包含了之前和之后的代码。所以你可以看到我用它来完成它与blogengine .net。
的整合答案 3 :(得分:0)
您可以使用Javascript:
<input name="Query" type="text" class="searchField" id="Query" value="Search" size="15" onfocus="if(this.value == 'Search') { this.value = ''; }" onblur="if(this.value == '') { this.value = 'Search'; }" onkeydown="var event = event || window.event; var key = event.which || event.keyCode; if(key==13) window.open('http://www.google.com/search?q=' + getElementById('Query').value ); " /><input name="" type="button" class="searchButton" value="go" onclick="window.open('http://www.google.com/search?q=' + getElementById('Query').value );" />