Ajax.BeginForm上的回调不起作用

时间:2011-05-05 23:25:58

标签: ajax asp.net-mvc-3 callback razor

我很难让回调适用于表单。我有这样的事情:

<script>
function VendorCreated() {
  alert('ok');
}
</script>

@using (Ajax.BeginForm("Create", "Vendor", new AjaxOptions {
    UpdateTargetId = ViewBag.TargetId, 
    HttpMethod = "Post", 
    OnSuccess="VendorCreated",
    })) {

提交后,我的功能永远不会被创建。如果我使用:

OnSuccess="alert('ok')"

它工作正常。我也试过了:

OnSuccess="function() { VendorCreated(); }"

但是我遇到了运行时错误。其他人遇到此问题,但我找不到解决方案,请参阅MVC 3 Razor - Ajax.BeginForm OnSuccessAjax.BeginForm OnBegin confirmation Via jquery modal

如果我查看IE调试器(F12),我在代码中看不到脚本标签......什么是正确的方法?

2 个答案:

答案 0 :(得分:0)

您是否在页面中加入了jquery.unobtrusive.ajax.js

答案 1 :(得分:0)

好吧,我已经把问题缩小了......上面的代码是由一个视图生成的,它被jQuery加载到另一个视图中的DIV中。我最近发现我可以使用@ Html.Action()在另一个视图中包含一个视图,这样做似乎可以解决上面的问题。我现在得到回调!

对任何有倾向的人来说,解释为什么一个有效而不是另一个有用。