我试图使用Ajax表单,每当我向任何AjaxOptions属性提供回调方法时,都会出现此错误。


  Microsoft JScript运行时错误:对象不支持此属性或方法


如果我不向任何属性(OnSuccess,OnFailure,OnComplete或OnBegin)提供回调函数,则不会发生错误,并且表单会正确发布。

这是我的代码。

<% using (Ajax.BeginForm("someAction", "SomeController", new AjaxOptions() {
        HttpMethod="POST",
        UpdateTargetId = "feedbackMsg",
        OnSuccess = "ShowConfirmationMessage"
    }))
{ %>


我的JavaScript代码是这样。

function ShowConfirmationMessage(xhr) { alert(xhr);}

当我提供OnSuccess方法时,代码将像这样呈现。

<form action="/Review/SaveQualityScore"
    method="post"
    onclick="Sys.Mvc.AsyncForm.handleClick(this, new Sys.UI.DomEvent(event));"
    onsubmit="Sys.Mvc.AsyncForm.handleSubmit(this, new Sys.UI.DomEvent(event),
        {
            insertionMode: Sys.Mvc.InsertionMode.replace,
            httpMethod: &#39;POST&#39;,
            updateTargetId: &#39;feedbackMsg&#39;,
            onSuccess: Function.createDelegate(this, ShowConfirmationMessage)
        });"
>


我猜是Function.createDelegate是问题。因为当我删除OnSuccess属性时,不会呈现function.CreateDelegate函数,并且一切正常。

无论如何,我在这里疯了,任何帮助将不胜感激。谢谢!

最佳答案

确保同时包含以下脚本:


MicrosoftAjax.js
MicrosoftMvcAjax.js

10-07 13:47