ajax post方法导致页面重新加载而没有回发

时间:2017-03-08 18:20:02

标签: javascript jquery asp.net ajax

我对ajax / ASP POST行为很困惑。 我有一个HTML按钮的表单(ASP页面的默认表单)。使用jQuery我在点击事件中执行某些操作,然后对WebMethod进行ajax POST调用:

<form runat="server" id="formRegistration" autocomplete="off" action="">
    ...other form controls
    <button id="btnSend" type="button" class="btn btn-success">Send</button>
</form>

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

    // some validations

    $.ajax({
        type: 'POST',
        traditional: true,
        url: 'Default.aspx/Submit1',
        data: JSON.stringify(myData),
        contentType: "text/plain",
        dataType: "text",
        success: function (msg) {
        },
        error: function () {
        }
    });
    return false;
});

protected void Page_Load(object sender, EventArgs e)
{
    System.Diagnostics.Debug.WriteLine("IsPostBack = " + IsPostBack.ToString());
}

[WebMethod]
public static bool Submit1(string json)
{
    System.Diagnostics.Debug.WriteLine(json);
    return true;
}
  • HTML按钮
  • type = button
  • return false

当我按下按钮重新加载页面时,WebMethod未执行,而是重新加载页面... IsPostBack = false

我只想在没有重新加载页面的情况下发布字符串。

1 个答案:

答案 0 :(得分:0)

您可以尝试使用链接而不是按钮,然后更改&#34;表单&#34;到&#34; div&#34;

<a id="btnSend" type="button" class="btn btn-success" href="#">Send</button>