2

Google カスタム検索コードはフォーム タグとして提供されます。ただし、Asp.net では、1 つのページに 1 つのフォーム タグしか使用できません。コードを aspx ページに含めることができるようにコードを実装する最良の方法は何ですか (たとえば、マスターページまたはナビゲーション要素の一部として)。

4

4 に答える 4

7

ASP.NET ページには複数のフォーム タグを含めることができます。制限は、サーバー側 (runat="server") フォーム タグにあります。

1 つだけが runat="server" 属性を持ち、1 つが他のタグに含まれていない限り、2 つ (またはそれ以上) のフォーム タグを実装できます。例:

<body>
<form action="http://www.google.com/cse" id="cse-search-box"> ... </form>
<form runat="server" id="aspNetform"> ... </form>
<body>
于 2008-09-16T18:08:36.270 に答える
2

複数のフォーム タグを使用できる場合もありますが、ネストできないことに注意してください。そのシナリオでは、あらゆる種類の奇妙なことに遭遇します (たとえば、ネストされたフォームの開始タグが明らかに無視され、終了タグが「親」フォームを閉じてしまうケースを見たことがあります)。

于 2008-09-16T18:13:08.943 に答える
1

フォーム タグを削除し、javascript を使用してクエリを送信する必要があります。http://my6solutions.com/post/2009/04/19/Fixing-Google-Custom-Search-nested-form-tags-in-asp-net-pages.aspxを ご覧ください。

前後のコードも含めました。blogengine .net と統合するために私が行ったことを見ることができます。

于 2009-04-20T08:05:04.233 に答える
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 );" />
于 2008-09-16T18:21:21.760 に答える