Я экспериментировал с jQuery UI и MVC3 и наткнулся на следующую проблему:
У меня есть очень простая страница, которая использует AJAX
<%: Ajax.ActionLink("Edit", "Edit", new { id = 1 }, new AjaxOptions() { UpdateTargetId = "dialog", OnSuccess = "DisplayPopup" }, null)%>
<div id="dialog" title="Location">
</div>
Это код контроллера:
public ActionResult Edit(int id)
{
return PartialView();
}
[HttpPost]
public ActionResult Edit()
{
return Content("Saved!");
}
и частичное редактирование вида:
<b>whatever</b>
<% using (Ajax.BeginForm("Edit", "Home",
new AjaxOptions()
{
UpdateTargetId = "editForm",
HttpMethod = "POST"
}))
{%>
<div id="editForm">
<input type="submit" value="Save" />
</div>
<% } %>
приведенный выше код работает нормально.
Теперь я добавляю всплывающий код jquery UI:
<script type="text/javascript">
function DisplayPopup() {
$('#dialog').dialog('open');
}
$('#dialog').dialog({
autoOpen: false,
width: 600,
modal: true,
buttons: {
"Close": function () {
$(this).dialog("close");
}
}
});
</script>
после этого в Firefox и Chrome он работает нормально, тогда как в IE8 я вижу следующую проблему:
- click edit - вызывает AJAX-вызов действия Edit (int id) и отображает представление редактирования во всплывающем окне
- нажмите сохранить - AJAX вызывает Edit () и показывает текст "Saved!"
- закрыть всплывающее окно
- нажмите edit - AJAX вызов Edit (int id) - снова
- нажмите сохранить - на этот раз он делает ПОЛНЫЙ постбэк (только в IE)
есть идеи?
Спасибо!