2017-10-31 8 views
0

データとともに2つのパラメータを送信します。ajaxを使用します。 paramsの1つは文字列であり、常にそれが必要なようにc#側に出てきますが、少数の文字列とintで構成される2番目のパラメータは常に関数に空になります。関数は、ajax呼び出しのパラメータの1つからヌル値を取得します。

$.ajax({ 
     url : "/Clients/Create", 
     data: { client : client, country : country}, 
     method : "post" 
    }); 

興味深い部分は、ブラウザからのjsファイルをデバッグするとき、デバッガがオブジェクトは、彼らが必要すべてが含まれていると言うことです。

public void Create(Client client, string country) 
    { 
     //creates... 
    } 

国paramが右に出てくるが、クライアント値のすべては、私はそれがために何か、そこに運を持っているかどうかを確認するために自分の場所を交換しようとしたヌルまたは0のいずれかです。また、私は "データ:{クライアント:クライアント、国:国}"を複数の方法で試しました。

Clientクラス:

public class Client 
{ 
    public int Id { get; set; } 
    public string Name { get; set; } 
    public string Address { get; set; } 
    public string City { get; set; } 
    public int Zip { get; set; } 
    public int CountryId { get; set; } 
    public Client() { } 
} 

これは、私はjsファイル内のクライアントのオブジェクトを構築しています方法です。

var client = { 
    Name : name, 
    Address : address, 
    City : city, 
    Zip : zip 
} 
+0

をコントローラ?具体的なデータは何か? – Shyju

+0

'client'変数の内容は何ですか?どうやってそれを造っているの? – Shyju

+0

私はこのコードをコメントに投稿するのに少し苦労しています。質問して編集します。 – kulijana

答えて

0

私はあなたのクライアントはMVCモデルであれば

var client = $.parseJSON('@Html.Raw(Json.Encode(yourModelClient))'); 
car country = "country"; 
var dataPlus = { 
       client : JSON.stringify(client),     
       country: country 
      }; 

アヤックス

$.ajax({ 
    url: '@Url.Action("Create", "Client")', 
    data: dataPlus, 
    method : "POST", 
}); 

を示唆して、あなたの `Client`がどのように見えるんどのように

[HttpPost] 
public actionresult Create(Client client, string country) 
{ 

} 
+0

mvcモデル、私はクライアントを作るためにデータを収集しています。私は提案された解決法に似た何かを試しましたが。私はJSON.stringify(クライアント)を行い、それをあなたのdataPlusに相当するものに入れました。再び、国だけが通過し、クライアントは空を保ちます。 – kulijana

+0

JSON.stringify({ 'var':foo、 'var2':foo})、 –

+0

のようなもので、収集データをjson.stringifyにしようとしました。ここに掲載されましたが、運がありませんでした。 – kulijana

関連する問題