2016-07-28 2 views
0

Так у меня есть объект, я хочу отправить в формате JSON (модель)Создать JSon объект (пытается)

function SerachClient() { 

     var tempfirstname = $("#firstname").val(); 
     var templastname = $("#lastname").val(); 
     var tempmobile = $("#mobile").val(); 
     var tempaccountId = $("#AccountId").val(); 
     var tempPin = "1234"; 
     var model = { LastName: templastname, FirstName: tempfirstname, Mobile: tempmobile, AccountId: tempaccountId, Pin: tempPin } 
     $.ajax({ 
      url: "/Home/SearchClient/", 
      type: 'GET', 
      data: { model: JSON.stringify(model) }, 
      cache: false, 
      crossDomain: true, 
      async: true, 
      dataType: 'json', 
      success: function (data) { 

      }, 
      error: function (event) { 

      }, 
      headers: { 
       'Access-Control-Allow-Origin': '*' 
      }, 
     }).done(function() { 

     }); 
    } 

однако на моем ASP.NET MVC контроллер видит

public JsonResult SearchClient(string model) 
{ 
} 
model=%7B%22LastName%22%3A%22Smith%22%2C%22FirstName%22%3A%22John%22%2C%22Mobile%22%3A%2278121212166%22%2C%22AccountId%22%3A%224e82dbfe-2b7f-472c-b66c-0707b1d66ba2%22%2C%22Pin%22%3A%221234%22%7D&_=1469706173642 

Любые идеи почему он не форматирует правильно?

ответ

2

Метод GET преобразует некоторые символы в кодированные URL. (см.: http://www.w3schools.com/tags/ref_urlencode.asp)

Не могли бы вы использовать POST вместо GET? (ГЭТ также ограничен в его размере)

+1

Спасибо ... :) –

0

Сначала создайте из параметров, как:

var param = JSON.stringify({ 
    model = { LastName: templastname, FirstName: tempfirstname, Mobile: tempmobile, AccountId: tempaccountId, Pin: tempPin } 
}); 

, а затем передать его на контроллер, как: -

$.ajax({ 
    url: "/Home/SearchClient/", 
    type: 'GET', 
    data: param, 

, а затем положить debugger в контроллер и проверьте model значение переменной.

1

Просто сделайте как модальный класс следующим образом

public JsonResult SearchClient(modalclass model) 
    { 
    string FirstName=model.FirstName; 
    string lastname=model.Lastname; 
    } 


public class modalclass 
{ 

public string FirstName{get;set}; 
public string LastName{get;set}; 
public int Mobile {get;set}; 
} 
Смежные вопросы