2010-10-27 18 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); 
    }); 
});