如何使用Ajax.BeginForm更新div并执行javascript函数?
我通过使用类似的东西更新部分视图的div:
并且它的工作正常,返回的视图被添加到div,但是我现在需要在post成功时执行javascript,所以我想:“简单,只需将OnSuccess = "MyJsFunc()"
添加到AjaxOptions
,但是这样做后,它停止了工作! 现在页面被刷新,只返回部分视图:(,我甚至试过一个简单的Alert("Hi")
,它也没有工作..我怎么能让这个工作?
(顺便说一下,我认为这可能是一个重复的https://stackoverflow.com/questions/1994754/execute-javascript-after-loading-a-mvc-page-using-ajax-beginrouteform但这个问题被废弃了回答)
没有正确做到这一点的任何理由(毕竟我们在2010年)? 转储它所属的MS AJAX以及依赖它并编写正确代码的所有Ajax.*
帮助程序。 虽然在经典webforms中使用MS AJAX可能是合理的,因为UpdatePanels等…今天在新的ASP.NET MVC应用程序中执行它,特别是在Microsoft完全接受jQuery之后,这似乎是一个坏主意。
所以在这之后的咆哮是我的建议:
<% using (Html.BeginForm("Action", "Controller", new { id = Model.id }) { %>
然后使用jquery在一个单独的文件中不引人注意地附加提交处理程序:
$(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表单插件 :
$(function() { $('form').ajaxForm(function(result) { // feel free to execute any code // in the success callback $('#result').html(result); }); });
这种方法的好处:
奖金福利:没有头痛。
我一直环顾四周,找到了答案:
将Javascript函数分配给AjaxOptions OnSuccess属性引发错误 – ASP.NET MVC (未选择答案)
引用Atzu
如果必须将任何参数传递给OnSuccess事件,则可能必须以这种方式编写函数。
OnSuccess = "function(){exampleFunction('" + param1 + "');}
它对我有用!
上述就是C#学习教程:如何使用Ajax.BeginForm更新div并执行javascript函数?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1030930.html