执行Ajax JQuery时出现以下错误:
以下是我使用的代码:
IPRRequest.cs类代码(.dll)
public static bool IsValidBarcodeTest(Guid? requestID, string barCode)
{
bool result = true;
Dictionary<string, object> input = new Dictionary<string, object>() {
{"@RequestID", requestID},
{"@BarcodeNo", barCode}
};
Data data = new Data();
DataTable dt = data.ExecuteQuery(CommandType.StoredProcedure, "Invoice.usp_tbl_Request_Select_CheckDuplicateBarcode_Test", input);
if (dt.Rows.Count > 0)
{
result = Helper.GetDBValue<int>(dt.Rows[0][0]) == 0;
}
return result;
}
.aspx.cs页码:
public abstract class Check
{
public abstract Guid? requestID { get; set; }
public abstract string barCode { get; set; }
}
[WebMethod]
[ScriptMethod]
public static bool CheckDuplicate(Check chk)
{
bool isExist = false;
isExist = IPRRequest.IsValidBarcodeTest(chk.requestID, chk.barCode);
return isExist;
}
Ajax JQuery代码:
<script type="text/javascript">
$(document).ready(function () {
$("[id*=btnSave]").bind("click", function () {
var chk = {};
chk.requestID = $("[id*=TempGUID]").text();
alert(chk.requestID);
chk.barCode = $("[id*=txtBarcodeNumber]").val();
alert(chk.barCode);
$.ajax({
type: 'POST',
url: "IPRForm_EditCheck.aspx/CheckDuplicate",
data: '{chk: ' + JSON.stringify(chk) + '}',
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function (data) {
var val = data.d;
alert(val);
if (val == true) {
alert("Barcode Number already exist in system database.");
}
else {
alert("Barcode Number does not exist");
}
},
error: function (data) {
alert(data.responseText);
},
});
return false;
});
});
</script>
存储过程
Select
Case When count(1) > 0
Then 1 --Exist
Else 0 --Not Exist
End As Duplicate
From Invoice.tbl_Request(NOLOCK)
Where BarcodeNo = @BarcodeNo
And (@RequestID Is Null Or RequestID <> @RequestID)
请回复我的代码中的错误。
请注意,我是Ajax JQuery和Web方法的新手
提前谢谢。
答案 0 :(得分:2)
.NET需要创建Check
类型的对象作为参数传递给WebMethod
CheckDuplicate
。
它不能创建抽象类的对象。
如果您将class Check
更改为以下内容,则应该有效:
public class Check
{
//This constructor is needed, but .NET will create
//it automatically if no other constructors are defined
public Check() { }
private Guid? requestID;
private string barCode;
public Guid? RequestId
{
get { return requestID; }
set { requestID = value; }
}
public string BarCode
{
get { return barCode; }
set { barCode = value; }
}
}