2016-07-20 7 views
1

私はmvc5を使っています。私はクラウドにイメージをアップロードし、イベントを呼び出すウィジェットを使用します。成功すると、データベースに情報を書き込む必要があります。コードの最初の行のデータ。リクエストからPOSTデータを取得する方法asp mvc 5

$(document).on('cloudinarywidgetsuccess', function (e, data /*this data I need in database*/) { 
    $.ajax({ 
     url: "/Cabinet/UploadImageCallback", 
     type: "POST", 
     data: data, 
     success: function (data) { 
      if (data.status == "success") { 
       console.log(data); 
      } else { 
       console.log("db error"); 
       console.log(data); 
      } 
     }, 
     error: function (data) { 
      console.log("An error has occured!!!"); 
      console.log(data); 
     } 
    }); 
}); 

コントローラのデータをjson形式で取得したいとします。私がこのように.phpに送ると、私はこのようにしてデータにアクセスすることができます$_POST['KEY']。 MVC5で同様の機能を利用するには?

+0

「データ」はどのように見えますか? – Shyju

+0

@Shyju json array – Nikita

+1

どのような構造ですか?同じ構造を持つクラスを作成し、それをあなたのparamとして使用します。データがポストされると、Modelバインダーは投稿されたデータをそのクラスのオブジェクトにマッピングし、そのデータにアクセスできます。 – Shyju

答えて

1

モデルをパラメータとして使用できます。ほとんどの場合、ASP.Net MVCのデフォルトのModelBinderをモデルにマップできます。

$.ajax({ 
    url: "@Url.Action("UploadImageCallback", "Cabinet")", // If you want strongly-typed URL 
    contentType: "application/json; charset=utf-8", 
    method: "POST", 
    data: JSON.stringify(data) 
    ... 
}); 

public class CustomerModel 
{ 
    public string FirstName { get; set; } 
    public string LastName { get; set; } 
} 

[HttpPost] 
public ActionResult UploadImageCallback(CustomerModel model) 
{ 
    // Do something 
} 
+0

モデルバインダーについて読んだことがあります。したがって、いくつかのフィールドが必要な場合は、次のアクションを記述するだけです: 'public ActionResult UploadImageCallback(string field1、string field3)'。 Modelバインダーは、使用可能なデータソース(POST、GET、SESSIONのいずれでもかまいません)のアクションパラメータと同じ名前のjson変数を自動的に検索します。同じ名前が最初のバインダーで、2番目のバインダーは文字列値をパラメーターの型に変換しようとします。両方の条件が真の場合、バインダーは値をアクションに送信します。 – Nikita

関連する問題