Frage

In meiner ASP.NET -MVC -Anwendung möchte ich, dass ein Benutzer einen Wert in ein Textfeld hinzufügt und dann meine AJAX.ActionLink drücken kann. Ich möchte so etwas tun:

Ajax.actionlink ("go", "action", "controller", new {value = textbox1.value})

Oder wie kann ich diesen Textbox -Wert sonst wieder auf meine Aktion bringen? JQuery?

War es hilfreich?

Lösung

Sie können Aktionen mit AJAX ausführen $ .get Methode:

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

Andere Tipps

Vielen Dank Alexander! Danke, dass du mich auf den richtigen Weg gebracht hast. Ich habe Ihren neuesten Code nicht ausprobiert, aber ich konnte Ihren vorherigen Code zum Laufen bringen. Hier ist der Arbeitscode. Ich bin mir sicher, dass dies alles kludgy ist, aber vielleicht kann mir jemand da draußen eine elegantere Lösung zeigen:

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

Meine Lösung, wie Sie sehen können, besteht darin, den Link nur zu codieren, anstatt zu versuchen, die ASP.NET AJAX -Helferklasse zu verwenden.

So rufen Sie den Wert aus Ihrem Textfeld in JQuery ab

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

$ .get (Aktion, Daten) ersetzen; mit $ ("#yourTargetId"). Load (Aktion, Daten); Sie erhalten einen Ajax wie in Folgendes:

<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" />
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top