Я пишу очень простое веб-приложение в 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