ASP .NET MVC.Ajax.BeginForm OnSuccsess не может найти функцию JavaScript - PullRequest
1 голос
/ 14 мая 2011

У меня есть диалог IQuery с формой Ajax внутри. Мне нужно закрыть этот диалог на succsess. Вот мой код формы:

   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 ]

2 голосов
/ 13 марта 2016

Ненавязчивый режим JavaScript отключен. Чтобы включить / выключить ненавязчивый режим JavaScript по умолчанию для всего приложения, вы можете использовать Web.config:

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

Вы также можете включить или выключить код:

HtmlHelper.UnobtrusiveJavaScriptEnabled = true;

2 голосов
/ 14 мая 2011

У вас ошибка скрипта из-за слишком большого количества скобок:

<script type="text/javascript">
    function userRegisterDialogCallback() {
    $("#userRegisterDialog").dialog("close");              // **}**
    }
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...