Domanda

Nella mia applicazione ASP.NET MVC Voglio un utente di aggiungere un valore in una casella di testo e premere il mio Ajax.ActionLink. Voglio fare qualcosa di simile:

Ajax.ActionLink ( "Go", "Azione", "Controller", nuova {value = Textbox1.value})

O quale altro modo posso ottenere questo valore di testo di nuovo alla mia azione? Jquery?

È stato utile?

Soluzione

È possibile eseguire l'azione utilizzando AJAX $ .get metodo:

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

Altri suggerimenti

Grazie mille Alexander! Grazie per avermi messo sulla strada giusta. Non ho provato si codice più recente, ma sono stato in grado di ottenere il vostro lavoro di codice precedente. Ecco il codice di lavoro. Sono sicuro che questo è tutto kludgy, ma forse qualcuno là fuori mi può mostrare una soluzione più 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>

La mia soluzione come si può vedere è solo quello di codificare il LINK invece di cercare di utilizzare la classe di supporto ASP.NET AJAX.

questo è il modo per recuperare il valore dalla vostra casella di testo in JQuery

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

sostituire $ .get (azione, dei dati); con $ ( "# yourTargetId") Carico (azione, dati).; si ottiene un ajax come nell'esempio seguente:

<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" />
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top