2

Backbone.js アプリケーションがあり、WEB API カスタム POST メソッドの 1 つを呼び出しています。これが私のカスタム投稿のコードです

WebApiConfig.cs

config.Routes.MapHttpRoute
            (
                name: "UserAdministrationApi",
                routeTemplate: "api/{controller}/PostUserInfo/{EmployeeDTO}",
                defaults: new
                {
                    EmployeeDTO = RouteParameter.Optional,
                    controller = "UserAdministration",
                    action = "PostUserInfo",
                });

コントローラ

        [HttpPost]
        [ActionName("PostUserInfo")]
        public HttpResponseMessage PostUserInfo(EmployeeDTO value)
        {
            // handling POST
        }

従業員DTO

   public class EmployeeDTO
   {
    public bool masAccess { get; set; }
    public bool reportAccess { get; set; }
    public string name { get; set; }
    public string office { get; set; }
   }

Backbone.js コードでテストする前に Fiddler でこれをテストしようとすると、500 内部エラーが発生します。何が悪いのかわからない

// フィドラー テスト

POST : http://localhost:56501/api/useradministration/PostUserInfo



Request Body

  {
     masAccess:"true"
     reportAccess:"false"
   }

お手伝いありがとう

4

1 に答える 1

6

いくつかのこと:

Andrei が述べたように、EmployeeDTO は routeTemplate の一部であってはなりません。

JSONlint.com によると、リクエスト本文は有効な JSON ではありません。試す

{
  "masAccess": "true",
  "reportAccess": "false"
}

Content-Type: application/jsonまた、ヘッダーを Fiddler リクエストに追加する必要がある場合もあります。

于 2013-06-05T17:26:21.543 に答える