2011-05-14 53 views
1

我有一個IQuery對話框,裏面有一個ajax窗體。我需要在succsess上關閉這個對話。這裏是我的表單代碼:ASP .NET MVC。 Ajax.BeginForm OnSuccsess找不到javascript函數

using (Ajax.BeginForm("Add", "User", new AjaxOptions { HttpMethod = "post", OnSuccess = "userRegisterDialogCallback" })) 
    {%> 
     // here goes form code 
    <%}%> 

這裏是生成的html:

<script type="text/javascript"> 
    function userRegisterDialogCallback() { 
    $("#userRegisterDialog").dialog("close"); 
    } 
</script> 
<div id="userRegisterDialog" title="Регистрация"> 
<form action="/User/Add" id="form0" 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;, onSuccess: Function.createDelegate(this, userRegisterDialogCallback) });"> 
<!-- Form code goes here --> 
</form> 

的問題是,提交後,JavaScript調試器說userRegisterDialogCallback沒有定義。我錯過了什麼?預先感謝您的答案。

回答

2

你有一個腳本錯誤,因爲一個太多的括號:

<script type="text/javascript"> 
    function userRegisterDialogCallback() { 
    $("#userRegisterDialog").dialog("close");    // **}** 
    } 
</script> 
2

非侵入式JavaScript模式被關閉。 要爲整個應用程序打開非侵入式JavaScript模式開啓/關閉默認情況下,你可以使用Web.config文件:

<configuration> 
    <appSettings> 
     <add key="UnobtrusiveJavaScriptEnabled" value="true"/> 
    </appSettings> 
</configuration> 

您還可以使用代碼打開或關閉:

HtmlHelper.UnobtrusiveJavaScriptEnabled = true;