2016-08-26 6 views
0

ビュー:AJAXを使用してコントローラに空のモデルを受け

$.ajax({ 
      dataType: 'json', 
      url: url, 
      data: JSON.stringify(form.serialize()), 
      contentType: "application/json; charset=utf-8", 
      type: "POST", 
      success: function (data) { }, 
     }); 

コントローラー:

[HttpPost] 
public ActionResult SendEmail(ContactUsModel model) 
{ 
    .... 
} 

私がモデルに空の値を受け付けております。

私は間違っていますか?

+0

あなたのモデルとあなたのフォームを共有できますか? – smoksnes

答えて

2

フォームを投稿している場合、フォームを文字列化する必要はありません。 JSON.stringifyを削除します。

$.ajax({ 
    dataType: 'json', 
    url: url, 
    data: form.serialize(), 
    type: "POST", 
    success: function (data) {       
    }, 
    }); 

serialize()は、すでに.NETは限りフォームはモデルのために必要な値が含まれているとして、モデルに解析することができるようになります文字列にフォームをシリアル化します。

また、スティーブンが述べたように、application/jsoncontentTypeと設定しないでください。これはURL形式で渡されるためです。 defaultapplication/x-www-form-urlencoded; charset=UTF-8は、まったく設定しないでください。

+3

また、あなたは 'contentType:" application/json; charset = utf-8 "、'を削除する必要があります(デフォルト - 'application/x-www-form-urlencoded; charset = UTF-8'を使用する必要があります) –

関連する問題