我有一个页面 Import.cshtml,它有 2 个 jquery 选项卡,例如:
@model Models.BaseDataModel
@{
Layout = "~/Views/Shared/_Layout.cshtml";
var val = Json.Encode(Model);
}
<script>
$(document).ready(function () {
$("#tabs").tabs({
activate: function (event, ui) {
window.location.hash = ui.tab.hash;
}
});
});
</script>
<div class="row-fluid">
<div id="tabs">
<ul>
<li><a href="#import-container"><i class="icon-upload icon-large"></i> IMPORT</a></li>
<li>
<a href="#sanitize-container"><i class="icon-list icon-large"></i> SANITIZE</a>
<span class="badge badge-important">0</span>
</li>
</ul>
<div id="import-container">
@Html.Partial("_ImportData", Model)
</div>
<div id="sanitize-container">
</div>
</div>
</div>
然后在我的 _ImportData 部分视图中,我有一个函数可以在使用 jquery 的按钮单击时发布到我的控制器,例如:
$('#btn-submit').click(function () {
var check = @Html.Raw(val)
$.ajax({
type: "POST",
url: '@Url.Action("ProcessAndSaveData", "ImportBaseData")',
data: JSON.stringify(check),
contentType: 'application/json; charset=utf-8',
async: true,
beforeSend: function () {
$('#spinner').show();
},
success: function (data) {
$('#spinner').hide();
alert(data.url);
if (data.url) {
window.location.href = data.url;
}
},
failure: function () {
}
});
});
最后在我的控制器中我有:
[HttpPost]
public ActionResult ProcessAndSaveData(BaseDataModel model)
{
// Some code
return Json( new { url = Url.Action("Import", "ImportBaseData", new { area = "BaseData" }) + "#sanitize-container"});
}
但这不会重定向到我在 Import.cshtml 视图中的 Sanitize 选项卡,我错过了什么或做错了什么?任何帮助深表感谢。