2010-10-27 19 views
0

我有一個包含搜索頁面的窗體的asp.net頁面。ASP.net webforms中的參數

有沒有解決方案,以便我可以在url中搜索文本?

我想給我的客戶複製/粘貼搜索結果url的可能性。

+0

你必須提供更多的細節。目前還不清楚「包含搜索頁面的表單」的含義。 – egrunin 2010-10-27 14:50:30

回答

0

更多的研究緊靠這個話題後,我覺得JavaScript解決方案是最好的:

您可以訪問使用JavaScript形式的action屬性。

<form id="myForm" action="Search.aspx" onsubmit="return setAction();"> 
    <input id="textbox" /> 
    <input type="submit" value="Submit" /> 
</form> 
<script type="text/javascript"> 

function setAction() 
{ 
    var myForm = document.getElementById("myForm"); 
    var myText = document.getElementById("textbox"); 

    if (myForm && myForm.action && myText && myText.value != null) 
    { 
     myForm.action = "Search.aspx?q=" + myText.value; 
    } 
    return true; 
} 

</script> 

個人我不是JavaScript的一個大風扇......但這並不添加額外的請求到服務器。 如果您認爲這有什麼缺點,請告訴我。

3

有可能有其他更好/更清潔/正確的方法來做到這一點,例如更換form's action或更改按鈕的PostBackUrl,但這是我會做的。

  1. 重定向到自我搜索詞並附加到query string
  2. 在頁面加載時,如果查詢字符串不爲空,請執行搜索。

的.aspx:

<asp:Label ID="Label1" runat="server" Text="Search Term:&nbsp;"></asp:Label> 
<asp:TextBox ID="txtSearchTerm" runat="server"></asp:TextBox> 
<asp:Button ID="btnSearch" runat="server" Text="Search" 
    onclick="btnSearch_Click" /> 

的.cs:

​​
+0

我有點不情願使用Response.Redirect。這不會影響搜索引擎的評價嗎? – 2010-10-28 05:04:31

+1

六年後,這篇文章解決了我的問題! :) – 2016-03-26 04:17:54

0

如果你想複製/粘貼URL的能力,你將需要得到搜索參數從表單中重定向到帶有URL上的搜索參數的表單,然後讀取QueryString值以執行搜索。

0

您還可以使用jQuery做的伎倆,就像這樣:

$(function(){ 

$('input[type="submit"]').click(function(e){ 
     e.preventDefault(); 
     var searchResult = "Search.aspx?q=" + $('input#textbox').val(); 
     $('form#myForm').attr('action',searchResult); 
    }); 
});