3

カレンダー アプリケーションでプッシュ通知をテストしています。カレンダー アプリケーションでイベントを作成すると、私の Web サイトは JSON 文字列を含む HttpPost 要求を取得します。このようなコードを書きましたが、アクション メソッドで JSON 文字列を受け取ることができませんでした。

       [HttpPost]
       public ActionResult Push(String jsonReq)
       {
         Console.write(jsonReq);
         return View();
       }

JSONと同じ構造でモデルを作成すると、リクエストを受け取ることができます。JSON構造と密接に結合しているようですか?ASP.Net MVC 4 で使用しています。

     [HttpPost]
    public ActionResult Push(JSONModel jsonModel)
    {

        return View();
    }
4

2 に答える 2

4

ASP.NET MVC モデル バインディングは次のように機能します。要求を解析し、そのパラメーターとアクション パラメーターの間で対応する名前から名前を見つけようとし、見つかった場合は後者をインスタンス化します。name のパラメーターを送信していjsonReqないため、アクション メソッドで何かを受け取ることはできません。

ASP.NET MVC に解析させずに Plan json 文字列を操作したい場合は、次の 2 つのオプションがあります。

  1. HttpContext.Requestアクション内からアクセスする
  2. リクエストボディをjsonReqパラメータにマップするカスタムモデルバインダーを書く
于 2013-03-01T08:50:23.497 に答える
1

リクエストには jsonReq という名前の値がないため、json をそのアクション パラメータにマップすることはわかりません。

JSONModel には、リクエストに含まれる JSON の名前付き値と一致するプロパティ名があるため、オブジェクトにデータが入力されます。

于 2013-03-01T08:44:15.147 に答える