【问题标题】:div.load() causing full page postbackdiv.load() 导致整页回发
【发布时间】:2017-05-02 11:12:13
【问题描述】:

保存表单数据后,只需要加载div而不是整个页面刷新而是首先进入Main Page Action Controller,然后是DIV Load Partial Action Controller。我找不到它发布整个页面的原因。

我也添加了preventDefault() 命令。

$("#btnSave").click(function (e) {
    e.preventDefault();

    var url = "@Url.Action("Save", "Note")";
    var id = "1";
    var model = {
      modelfields.....
    };

    $.ajax({
        type: "POST",
        data: JSON.stringify(model),
        url: url,
        contentType: "application/json",
        success: function (data) {
            if (data == "True") {

              // Load div
                var settings = { editUrl: '@Url.Action("Get", "Note", new { ID = "-1" })' };
                 settings.editUrl = settings.editUrl.replace("-1", id);
                $("#divNoteDetails").load(settings.editUrl);
            }
            else if (data == "False") {
                alert('not saved');
            }
        },
        error: function () {
            alert('error');
        }
    });
    return false; 
});

【问题讨论】:

  • Note 操作返回什么?
  • 两者都有ActionResult 作为返回类型,Save返回ContentResult而GetAction返回PartialView
  • 所以你的页面在你点击提交按钮后刷新了吗?
  • 如果我在 ajax 成功中添加了这个 div 加载命令,页面首先刷新,然后进入部分视图操作。如果我删除此命令,它将不会刷新。但我需要在保存表单后加载 div。
  • 它是一个普通按钮而不是提交按钮

标签: javascript jquery html asp.net-mvc


【解决方案1】:

如果您的按钮位于表单内,则其默认的typesubmitsee the spec for details

尝试将type="button" 添加到按钮,或在附加到表单本身的事件处理程序上添加event.preventDefault()

【讨论】:

  • 您是否尝试将preventDefault() 添加到表单submit 处理程序?
  • 我删除了表格,但仍然发生这种情况
猜你喜欢
  • 1970-01-01
  • 2015-07-21
  • 1970-01-01
  • 1970-01-01
  • 2010-09-18
  • 2011-12-18
  • 1970-01-01
  • 2018-12-15
  • 2010-10-18
相关资源
最近更新 更多