【发布时间】:2017-09-04 07:50:01
【问题描述】:
这个问题的答案我看过很多次了,但是大部分都和MVC控制器有关。
我在尝试使用 Ajax 发送表单时遇到的问题是,在调试模式下,执行流程不会到达我在后面的代码中设置的断点。另外,我注意到当我点击提交按钮时,页面刷新得非常快;我认为 ajax 的整个想法是不刷新页面。
这是我的 index.aspx
<head runat="server">
<title></title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script src="ajaxform.js" type="text/javascript"></script>
</head>
<body>
<form id="form1" runat="server">
<div>
<fieldset class="fs1">
<input id="inputData" tabindex="1" name="theinputData" class="field" placeholder="Paste URL, docId or docSetId" runat="server"/>
<input id="form1Send" type="submit" class="button" onclick="submit()"/>
</fieldset>
</div>
</form>
</body>
这是我的 ajaxform.js 的代码
$(document).ready(function () {
$('#form1').submit(function (e) {
var formData = new FormData(this);
$.ajax({
url: 'index.aspx/OnSubmit',
type: "POST",
dataType: "json",
contentType: "application/json; charset=utf-8",
data: formData,
contentType: false,
processData: false,
success: function (result) {
alert("We returned: " + result);
},
error: function (result) {
alert("Error");
}
});
e.preventDefault();
});
});
最后,这是我的代码
namespace mySpace
{
public partial class index : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
[WebMethod]
public static string OnSubmit()
{
return "I was in code behind";
}
}
}
我的断点在返回线上。为什么程序永远无法到达 WebMethod?
【问题讨论】:
-
将
e.preventDefault();移动到函数的顶部。这有帮助吗?