Pergunta

No meu aplicativo ASP.NET MVC, quero que um usuário adicione um valor em uma caixa de texto e pressione meu ajax.actionlink. Eu quero fazer algo assim:

Ajax.actionlink ("go", "ação", "controlador", new {value = textbox1.value})

Ou de que outra forma posso obter esse valor de caixa de texto de volta à minha ação? JQuery?

Foi útil?

Solução

Você pode executar ação 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" />

Outras dicas

Muito obrigado Alexander! Obrigado por me colocar no caminho certo. Não tentei o seu código mais recente, mas consegui fazer seu código anterior funcionar. Aqui está o código de trabalho. Tenho certeza de que tudo isso é estranho, mas talvez alguém lá fora possa me mostrar uma solução mais 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>

Minha solução como você pode ver é apenas codificar o link, em vez de tentar usar a classe auxiliar ASP.NET AJAX.

É assim que você recupera o valor da sua caixa de texto no jQuery

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

substituir $ .get (ação, dados); com $ ("#yourtargetId"). carregar (ação, dados); Você recebe um Ajax como no seguinte:

<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 em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top