0

我有一个页面 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 选项卡,我错过了什么或做错了什么?任何帮助深表感谢。

4

0 回答 0