ASP.NET MVC 2.0 Ajax-вызов - LoadingElementId не скрывается при указании сценария OnSuccess - PullRequest
0 голосов
/ 15 апреля 2011

Я пишу очень простое веб-приложение в ASP.NET MVC 2.0, которое используется в качестве тестового интерфейса для веб-службы. Различные страницы представляют пользовательский интерфейс для ввода параметров для сообщений запроса. Параметры передаются обратно в контроллер через Ajax, который возвращает частичное представление, содержащее ответное SOAP-сообщение (XML-кодированный XML) в

tag...</p>

<pre><code>// In controller...
ActionResult WebMethodTest()
{
    return View(new WebMethodModel());
}

[HttpPost]
ActionResult WebMethodTest(WebMethodModel model)
{
    model.Response = MyServiceProxy.WebMethod(model.Request);
    return PartialView("SoapResponse", model.Response);
}

// In view
<% using (Ajax.BeginForm(new AjaxOptions { UpdateTargetId="Response", LoadingElementId="Loading", HttpMethod="POST", OnSuccess="prettyPrint"}))
   { %>
    <!-- various model bound controls... -->
<% { %>

<div id="Loading" style="text-align:center; display:none">
    <img src="../../Content/ajax-loader.gif" alt="loading..." /><br />
    working...
</div>
</code>

К сожалению, элемент загрузки Div не скрывается снова, когда данные возвращаются после вызова Ajax, он остается видимым. Интересно, что он будет скрыт правильно, если я удалю OnSuccess = "prettyPrint". У меня создается впечатление, что мой сценарий OnSuccess переопределяет поведение по умолчанию, а не выполняется дополнительно. Я не хочу потерять prettyPrint, поскольку он окрашивает отображаемый XML-код ... как я могу сохранить поведение элемента загрузки по умолчанию, а также мой собственный обработчик OnSuccess?

Ура! * * 1005

1 Ответ

0 голосов
/ 18 апреля 2011

Я решил эту проблему, изменив сценарий OnSuccess следующим образом:

OnSuccess = "function() { prettyPrint(); return true; }"

Так что, похоже, что, как и OnBegin, возвращение false (или чего-либо, кроме true) отменяет операцию, хотя на этом этапеDOM уже обновлен, поэтому единственное, что вы можете отменить, - это скрыть элемент Loading ... что не кажется очень полезным!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...