アクション(ファイルのアップロード)にmultipart/form-dataリクエストを送信していますが、そのIDを持つアクションに送信しますAsp.net WebApi経路定義のIDを持つmultipart/form-data
routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}/{action}",
defaults: new {action = "Index", id = RouteParameter.Optional }
);
のURL私が投稿しています:ルートで指定されたURL /api/Contacts/1/Photo
処置:
idパラメータで[HttpPost]
public HttpResponseMessage Photo(int id)
{
var task = this.Request.Content.ReadAsStreamAsync();
task.Wait();
Stream requestStream = task.Result;
/* ... */
}
、私はこのエラーを取得:No 'MediaTypeFormatter' is available to read an object of type 'Int32' with the media type 'multipart/form-data'.
IDなしPAそれはうまく動作します。
この回答でMediaTypeFormatterを試しましたが、FirstDispositionNameOrDefault("id")
を取得しようとすると、URLからIDを取得してクラッシュしないようですが、この回答はhereです。アクションのidパラメータにバインドするURLに指定されたidを取得する方法はありますか?
+1。ありがとう。しかし、確かにフォーマッタのエラーは本当に誤解を招く**です。問題はフォーマッタではなく、アクションを解決しようとしているようですか? – Aliostad