无法将参数从jquery ajax传递给c#后面的代码

时间:2017-02-13 07:27:22

标签: c# jquery ajax web-services rest

我遇到的问题是,当我通过jquery ajax传递testbox值时,我看不到代码中的值。

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;
    }

InsertComplaint

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 个答案:

答案 0 :(得分:1)

这里的名字

COPY entrypoint.sh /
ENTRYPOINT /entrypoint.sh

在这里

{
                        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',

你会看到' 123',而不是null。