5

多くの人のように、私は複数のパラメーターを Web API プロジェクトに渡そうとしています。このサイトで提供されているいくつかの解決策を試しましたが、うまくいきませんでした。私の最新の失敗した反復は次のようになります。

コントローラー

public class UserDTO
{
   public int userID;
   public string username;
}

[HttpPost]
public string Post([FromBody]UserDTO userDTO)
{
   return userDTO.userID.ToString() + " " + userDTO.username;
}

Web API ルート構成

config.Routes.MapHttpRoute(
   name: "DefaultApi",
   routeTemplate: "api/{controller}/{id}",
   defaults: new { id = RouteParameter.Optional }
);

jQuery

var apiUrl = "http://localhost:55051/api/User/Post";
var userDTO = {
   userID: 5,
   username: "testuser"
};

$.ajax({
   type: "POST",
   url: apiUrl,
   data: JSON.stringify(userDTO),
   datatype: "json",
   contenttype: "application/json; charset=utf-8"
)};

フィドラー出力

Fiddler は正しく渡された JSON 変数を表示し、Raw ビューでは次のように表示されます。

{"userID":5,"username":"testuser"}

実行時

userID = 0
username = null

ヘルプ!

問題は Web API にあり、POST が Fiddler で正しくフォーマットされているように見えるため、JSON パラメーターを操作するのが難しいと考えています。何か案は?

4

2 に答える 2