Tengo una asp.net página que contiene un formulario de búsqueda en la página.

Existe alguna solución para que yo pueda tener el texto de búsqueda en la url?

Quiero dar la posibilidad a mis clientes para copiar/pegar los resultados de búsqueda de url.

  • Usted tendrá que proporcionar más detalles. No está claro lo que «contienen una forma que buscar en la página» significa.
InformationsquelleAutor Radu D | 2010-10-27

4 Comentarios

  1. 6

    No podría ser mejor/limpiador/formas adecuadas de hacerlo, como el cambio de acción del formulario, o el cambio del botón de PostBackUrl, pero esto es lo que yo haría.

    1. Redirigir a uno mismo con el término de búsqueda que se anexa a cadena de consulta.
    2. En la página de carga, si la cadena de consulta no está vacío, hacer la búsqueda.

    .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:

    protected void Page_Load(object sender, EventArgs e)
    {
        if (Page.IsPostBack)
            return;
    
        if (!string.IsNullOrEmpty(Request.QueryString["SearchTerm"]))
        {
            string searchTerm = Request.QueryString["SearchTerm"];
            txtSearchTerm.Text = searchTerm;
            DoSearch(searchTerm);
        }
    }
    protected void btnSearch_Click(object sender, EventArgs e)
    {
        if (!string.IsNullOrEmpty(txtSearchTerm.Text.Trim()))
        {
            Response.Redirect("~/Search.aspx?SearchTerm=" + txtSearchTerm.Text.Trim());
        }
    }
    
    private void DoSearch(string searchTerm)
    {
        //search logic here
        Response.Write("Search result: " + searchTerm);
    }
    • Yo era un poco reticente de la utilización de la Respuesta.Redirigir. No va a afectar a los motores de búsqueda de calificación?
    • Seis años más tarde este post solucionado mi problema! 🙂
  2. 0

    Si desea que la capacidad de copiar/pegar la URL, usted necesita para obtener los parámetros de búsqueda en el formulario y redirigirá al formulario con los parámetros de búsqueda en la URL, a continuación, lea el QueryString de valores para realizar la búsqueda.

  3. 0

    Después de más investigación que colindan con este tema creo que el javascript es la mejor solución:

    Puede acceder al atributo ACTION del formulario con JavaScript.

    <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>

    Personalmente no soy un gran fan de JavaScript … pero esto no añadir un extra de solicitud para el servidor.
    Si usted piensa que esto tiene algunos inconvenientes, por favor hágamelo saber.

  4. 0

    También puede utilizar jQuery para hacer el truco, como este:

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

Dejar respuesta

Please enter your comment!
Please enter your name here