我拨打了ajax电话。从ajax值传递完全正确,但我收到该错误。我试图找到原因,但未能找到原因。
我尝试调试代码,但没有显示任何意义。
var obj = {
Mode: mode,
TissueRequestFeeID: mode == 1 ? 0 : data.TissueRequestFeeID,
TissueRequestID: viewBagRequestId,
FeeTypeID: data.FeeTypeID,
OtherFee: data.OtherFee,
Fee: data.Fee,
};
}
var TissueRequestFeeobj = {
TissueRequestFeeData: JSON.stringify(obj)
}
console.log(TissueRequestFeeobj);
var url = rootPath + "api/RequestApi/SaveAndUpdateRequest";
$.ajax({
url: url,
type: 'POST',
data: TissueRequestFeeobj,
success: function (TissueRequestFeeID) {
console.log(TissueRequestFeeID);
}
});
API代码:
[System.Web.Http.HttpGet]
[System.Web.Http.ActionName("UpdateTissueRequestFee")]
public HttpResponseMessage UpdateTissueRequestFee(HttpRequestMessage request,int Mode, int TissueRequestFeeID, int TissueRequestID,
int FeeTypeID,string Fee,string OtherFee)
{
try
{
EISDataAccess objDAL = new EISDataAccess();
int i = 0;
SqlParameter[] p = new SqlParameter[7];
p[i] = new SqlParameter("@Mode", SqlDbType.Int);
p[i].Value = Mode;
i++;
p[i] = new SqlParameter("@TissueRequestFeeID", SqlDbType.Int);
p[i].Value = TissueRequestFeeID;
i++;
p[i] = new SqlParameter("@TissueRequestID", SqlDbType.Int);
p[i].Value = TissueRequestID;
i++;
p[i] = new SqlParameter("@OtherFee", SqlDbType.VarChar);
p[i].Value = OtherFee;
i++;
p[i] = new SqlParameter("@Fee", SqlDbType.VarChar);
p[i].Value = Fee;
i++;
p[i] = new SqlParameter("@CreatedBy", SqlDbType.VarChar);
p[i].Value = SessionManager.Current.UserDetails.AppUserId;
i++;
p[i] = new SqlParameter("@ModifiedBy", SqlDbType.VarChar);
p[i].Value = SessionManager.Current.UserDetails.AppUserId;
i++;
var RequestID = objDAL.ExecuteDataset(connectionString, CommandType.StoredProcedure, "Distribution_SaveRequest", p);
return request.CreateResponse(HttpStatusCode.OK, p[1].Value);
}
catch (SqlException ex)
{
return ProcessHttpRequestException(request, ex);
}
catch (Exception ex)
{
return ProcessHttpRequestException(request, ex);
}
}
答案 0 :(得分:0)
您正在ajax调用中传递TissueRequestFeeobj
,该调用包含一个带有键TissueRequestFeeData
的对象,但在action方法中,已将“ TissueRequestFeeData”的属性作为单独的参数提及。因此,您将获得空值。
相反,您应该尝试直接在ajax调用中传递JSON.stringify(obj)
。像这样:
var obj = {
Mode: mode,
TissueRequestFeeID: mode == 1 ? 0 : data.TissueRequestFeeID,
TissueRequestID: viewBagRequestId,
FeeTypeID: data.FeeTypeID,
OtherFee: data.OtherFee,
Fee: data.Fee,
};
var url = rootPath + "api/RequestApi/SaveAndUpdateRequest";
$.ajax({
url: url,
type: 'POST',
data: JSON.stringify(obj),
success: function (TissueRequestFeeID) {
console.log(TissueRequestFeeID);
}
});