无法将参数从 jquery ajax 传递到 c# 后面的代码
Posted
技术标签:
【中文标题】无法将参数从 jquery ajax 传递到 c# 后面的代码【英文标题】:cannot pass parameters from jquery ajax to code behind c# 【发布时间】:2017-07-01 02:51:17 【问题描述】:我面临一个问题,当我通过 jquery ajax 传递测试框值时,我看不到后面代码中的值。
function CreateComplaint()
var category = $('#ddlCompCategory') .val();
var name = $('#txtCompUserName') .val();
var subject = $('#txtCompSub') .val();
var mobile = $('#txtCompMobileNo') .val();
var address = $('#txtaCompAddr') .val();
var email = $('#txtCompEmail') .val();
$('#spinnerAddComplaint').show();
CreateComplaintXHR(
'/api/Complaints/CreateComplaint',
Token : RBApp.Token,
CategoryId : category,
UName : name,
Subject : subject,
Mobile : mobile,
Email : email,
Address : address
, ....
ajax 函数:
function CreateComplaintXHR(url, data, success, error, alWaysCallback)
$.ajax(
url: url,
type: 'POST',
dataType: 'json',
data: data,
success: function (data, textStatus, jqXHR)
if (success)
success(data, textStatus, jqXHR);
,
error: function (jqXHR, textStatus, errorThrown)
if (error)
error(jqXHR, textStatus, errorThrown);
).always(function ()
);
后面的代码:
[HttpPost]
[ActionName ( "CreateComplaint" )]
public ResponseModel InsertComplaintMethod(InsertComplaint Complaint)
log .Debug ( "Create Complaint request received : " );
log .Debug ( "Request params : " + Complaint .Serialize() );
User user = loadUser ( Complaint .Token );
ComplaintsAdapter adapter = new ComplaintsAdapter ( user );
ResponseModel response = adapter .CreateComplaintOrSuggestion ( Complaint );
return response;
插入投诉
public class InsertComplaint
//public string Token get; set;
public string Lat = "0"; // get; set;
public string Lng = "0"; // get; set;
public string deviceID = "0";
public string complaintSubject get; set;
public string complaintText get; set;
public string name get; set;
public string phoneNumber get; set;
public string attachements = null;
在 insertComplaintMethod 函数对象中,投诉没有得到任何值,而是显示为 null。这是问题吗,因为在 ajax 函数数据中的参数比在具有更多属性的投诉对象中少。任何人都可以提供帮助。 提前致谢。
【问题讨论】:
【参考方案1】:这里的名字
Token : 'test',
CategoryId : 'test',
UName : 'test',
Subject : 'test',
Mobile : 'test',
Email : 'test',
Address : 'test'
这里
public class InsertComplaint
//public string Token get; set;
public string Lat = "0"; // get; set;
public string Lng = "0"; // get; set;
public string deviceID = "0";
public string complaintSubject get; set;
public string complaintText get; set;
public string name get; set;
public string phoneNumber get; set;
public string attachements = null;
应该是一样的。例如替换这一行
Mobile : 'test',
这个
phoneNumber : '123'
你会看到“123”,而不是空值。
【讨论】:
谢谢哥们。我花了 2 天时间来解决问题。有用。再次感谢。以上是关于无法将参数从 jquery ajax 传递到 c# 后面的代码的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 AJAX (jquery) 将嵌套的对象数组传递和接收到 c# WebMethod 中?
将数据从 jquery ajax 请求传递到 wcf 服务失败反序列化?