Pregunta

En mi aplicación ASP.NET MVC Quiero que un usuario agregue un valor en un cuadro de texto y presione mi Ajax.ActionLink. Quiero hacer algo como esto:

Ajax.ActionLink ( "Go", "Acción", "Controller", nueva {value = Textbox1.value})

O de qué otra manera puedo obtener este valor de texto de nuevo a mi acción? JQuery?

¿Fue útil?

Solución

Puede ejecutar la acción usando AJAX $ .get método:

<script type="text/javascript">     

    $(document).ready(function()
    {
        $("#t").change(function()
        {
            RunAction();
        });

        RunAction();
    });

    function RunAction()
    {
        var action = '<%= Url.Action("Action", "Controller") %>';
        var data = $("#t").serialize();
        $.get(action, data);
    }

</script>

<input type="text" id="t" />

Otros consejos

Muchas gracias Alexander! Gracias por ponerme en el camino correcto usted. No te trato último código, pero yo era capaz de obtener su trabajo de código anterior. Aquí está el código de trabajo. Estoy seguro de que todo esto es kludgy, pero tal vez alguien por ahí me puede mostrar una solución más elegante:

            <script type="text/javascript">
                $(document).ready(function() {
                    $("#myVal").change(function() {
                        changeActionURL();
                    });
                    changeActionURL();
                });
            function changeActionURL() {
                var url = '<%= new UrlHelper(ViewContext.RequestContext).Action("Action", "Controller") %>' + '?dup=' + $("#myVal").val();
                $("#u").attr('href', url);
            }
            </script>

            <a id="u" href="" onclick="Sys.Mvc.AsyncHyperlink.handleClick(this, new Sys.UI.DomEvent(event), { insertionMode: Sys.Mvc.InsertionMode.replace, updateTargetId: 'HellaYeah' });">Report Dupe</a>

        </p>
        <div id="response">not done</div>

Mi solución como se puede ver es sólo para codificar la Conexión en lugar de tratar de utilizar la clase de ayuda ASP.NET AJAX.

esta es la forma de recuperar el valor de su cuadro de texto en jQuery

var input =  $('input[name=txt_MyTextBox]').val()

reemplazar $ .get (acción, datos); con $ ( "# yourTargetId") carga (acción, datos).; se obtiene un Ajax como en el siguiente:

<script type="text/javascript">     

    $(document).ready(function()
    {
        $("#t").change(function()
        {
            RunAction();
        });

        RunAction();
    });

    function RunAction()
    {
        var action = '<%= Url.Action("Action", "Controller") %>';
        var data = $("#t").serialize();
        $("#yourTargetId").load(action, data);
    }

</script>

<input type="text" id="t" />
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top