以下jQuery在现有的asp.net网站上运行得很好。我将其转换为asp.net Web应用程序,并且以下代码不再有效。客户端上没有编译错误,似乎解雇得很好。我得到了成功警报,但Case.aspx / DOFE_update函数似乎永远不会运行。这是奇怪的部分如果我将url更改为sumtingwong.aspx / DOFE_update它显然会失败,因为url不存在但是如果我将url更改为Case.aspx / sumtingwong则不会失败,即使页面上的方法没有存在。勺子不存在。矩阵中一定有毛刺。
$(function () {
$("[id=textboxDOFE]").change(function () {
var DOFE = $(this).val();
var CaseID = $('[id=CaseID]').val();
$.ajax({
type: "POST",
url: "Case.aspx/DOFE_update",
data: '{"CaseID":' + CaseID + ', "DOFE":"' + DOFE + '"}',
contentType: "application/json;charset=utf-8",
dataType: "json",
async: false,
error: function (request) {
alert(request.responseText);
},
success: function (response) {
alert("success");
}
});
});
});
Case.aspx.vb文件中的代码:
<WebMethod()>
<ScriptMethod()>
Public Shared Function DOFE_update(CaseID As Integer, DOFE As String) As Integer
If IsDate(DOFE) Then
Dim stringCommand As String = "UPDATE dbo.Cases SET DOFE=@DOFE, lockedDOFE=1 WHERE CaseID=@CaseID;"
Using con As New Data.SqlClient.SqlConnection(ConfigurationManager.ConnectionStrings("myconnectionstring").ConnectionString)
Dim cmd As New SqlCommand(stringCommand, con)
cmd.CommandType = Data.CommandType.Text
With cmd.Parameters
.AddWithValue("@CaseID", CaseID)
.AddWithValue("@DOFE", IIf(DOFE = "", System.DBNull.Value, DOFE))
End With
con.Open()
cmd.ExecuteNonQuery()
End Using
Return 1
Else
Return 0
End If
End Function
我是个白痴,记忆力不好。没关系,我在一年前最初创建asp.net网站的时候问过这个问题。
在RouteConfig.vb文件中,我注释掉了这一行:
settings.AutoRedirectMode = RedirectMode.Permanent
不知道该行正在完成什么,或者该站点是否需要它,但它导致jQuery AJAX不起作用。