Это действительно странная проблема. Я разработал небольшое приложение MVC и до сих пор проводил тестирование с использованием встроенного в Dev200 сервера VS2008, и все работает, как я ожидаю. Теперь я перенес решение на хостинг IIS и вижу разные результаты в представлении, использующем Ajax.ActionLink.
actionlink ссылается на действие контроллера, которое возвращает частичное представление (.ascx). В AjaxOptions ссылки я указываю UpdateTargetId элемента DOM, который я хочу заменить частичным представлением, возвращаемым действием. При запуске приложения с использованием встроенного сервера dev поведение такое же, как и ожидалось -> вызов ajax успешно возвращает частичное представление и заменяет указанный элемент DOM. Однако при размещении в IIS действие контроллера успешно выполняется, но результат отображается на новой странице, а не заменяет указанный элемент DOM.
Вот соответствующий источник для страницы, которая делает вызов ajax:
<% if (info.CurrentStatus != OrderStatus.Received &&
info.CurrentStatus != OrderStatus.Processing)
{ %>
<td><%= Ajax.ActionLink("Reprocess Order", "Reprocess",
new { generatedId = info.GeneratedId },
new AjaxOptions
{
UpdateTargetId = "success" + info.GeneratedId,
OnSuccess = "reprocessSuccess"
})%></td>
<% } %>
<td><%= Html.Div("success" + info.GeneratedId) %> </td>
А вот действие, которое обеспечивает частичное представление:
[RequiresSearch()]
public ActionResult Reprocess(string generatedId)
{
if (RequestReprocessingOfOrder(generatedId))
{
ViewData["reprocessSuccess"] = "Reprocessing request successful. Order is queued for reprocessing";
}
else
{
ViewData["reprocessSuccess"] = "Reprocessing request failed. Please contact the administrator";
}
return PartialView();
}
Любая помощь будет принята с благодарностью !!!
РЕДАКТИРОВАТЬ: У меня нет большого опыта работы с mvc / ajax, поэтому я не уверен относительно того, где событие начать пытаться решить эту проблему, так что даже указатели на то, что искать, было бы здорово. 1015 *