代码之家  ›  专栏  ›  技术社区  ›  Francisco Noriega

如何使用更新divAjax.BEGINFORT公司执行一个javascript函数?

  •  10
  • Francisco Noriega  · 技术社区  · 14 年前

    我使用如下方法更新带有部分视图的div:

    <% using (Ajax.BeginForm("Action", "Controller",
                   new { id=Model.id },
                   new AjaxOptions
                   {
                       UpdateTargetId = "divId",
                       InsertionMode = InsertionMode.InsertAfter,
                   }))
       {  %>
    

    OnSuccess = "MyJsFunc()" AjaxOptions ,但这样做之后,它就停止工作了!现在页面被刷新,只呈现返回的部分视图:(,我甚至尝试使用一个简单的 Alert("Hi") 它也不起作用。。我怎样才能让它工作?

    (顺便说一句,我觉得这可能是个骗局 https://stackoverflow.com/questions/1994754/execute-javascript-after-loading-a-mvc-page-using-ajax-beginrouteform

    2 回复  |  直到 7 年前
        1
  •  16
  •   Darin Dimitrov    14 年前

    有什么理由不正确地做这件事(毕竟我们是在2010年)?将MS-AJAX与所有 Ajax.* 依赖它并编写适当代码的助手。而在经典的webforms中使用msajax可能是合理的,因为updatepanel等。。。在一个新的ASP.NET如今的MVC应用程序,尤其是在微软完全接受jQuery之后,这似乎是个坏主意。

    在咆哮之后,我建议:

    <% using (Html.BeginForm("Action", "Controller", new { id = Model.id }) { %>
    

    然后在一个单独的文件中使用jquery将submit处理程序附加到一个单独的文件中:

    $(function() {
        $('form').submit(function() {
            $.ajax({
                url: this.action,
                type: this.method,
                success: function(result) {
                    // feel free to execute any code 
                    // in the success callback
                    $('#result').html(result);
                }
            });
            return false;
        });
    });
    

    或者使用优秀的 jquery form plugin

    $(function() {
        $('form').ajaxForm(function(result) {
            // feel free to execute any code 
            // in the success callback
            $('#result').html(result);
        });
    });
    

    • 不引人注目的

    额外好处:不头痛。

        2
  •  5
  •   Community basarat    7 年前

    我不停地环顾四周,找到了答案:

    Assign a Javascript function to AjaxOptions OnSuccess property raise an error - ASP.NET MVC (未选择答案)

    Atzu

    如果必须将任何参数传递给 你可能不得不去参加成功的活动

    OnSuccess = "function(){exampleFunction('" + param1 + "');}
    

    这对我很有效!