【发布时间】:2011-01-24 05:09:26
【问题描述】:
我正在制作一个带有 MVC 2 的 Ajax 支持的选项卡导航控件:Ajax.BeginForm。出于某种原因,它在 Safari 和 Firefox 中运行良好,但是当我在 IE8 中加载它时,浏览器将 Ajax 方法(控制器操作)的返回加载到整个页面中(即像进行非 ajax 提交一样)。
加价:
<% using (Ajax.BeginForm(new AjaxOptions { UpdateTargetId = "tabContent"})) { %>
<ul id="tabnav">
<li id="TabOne"><a href="#" onclick="updateTab(event)">Tab 1</a></li>
<li id="TabTwo"><a href="#" onclick="updateTab(event)">Tab 2</a></li>
<li id="TabThree"><a href="#" onclick="updateTab(event)">Tab 3</a></li>
<%: Html.Hidden("tabId") %>
</ul>
<% } %>
<div id="tabContent"></div>
这是 JavaScript:
function updateTab(evt) {
var $target = $(evt.target);
var selectedTabId = $target.parent().attr('id');
$('#tabId').val(selectedTabId);
// submit the form AJAXly
$target.closest('form').submit();
// hide the current content
$('#tabContent').empty();
// update the selected tab
$('#tabnav li').removeClass('currentTab');
$('#' + selectedTabId).addClass('currentTab');
// suppress default link action
return false;
}
控制器:
[HttpPost]
public ActionResult Index(string tabId)
{
ViewData["tabId"] = tabId;
// redirect to the selected tab
return RedirectToAction("Index", tabId);
}
【问题讨论】:
标签: jquery ajax internet-explorer asp.net-mvc-2