0

アップロード コントロールを使用してファイルを JsonResult に送信していますが、2 番目のパラメーターとして JSON 文字列も送信しています。これはすべて Content-Type:multipart/form-data; で投稿されています。

[HttpPost]
public JsonResult UploadDocument(HttpPostedFileBase file, DocumentViewModel model)
{ ... }

コンテンツ タイプが application/json に設定されている場合、MVC がビューモデルに直接バインドできることはわかっていますが、この場合、それを設定することはできないと思います。

投稿された json 文字列をモデルに自動的にバインドするように MVC を取得する方法はありますか?

4

2 に答える 2

2

これは、すぐに使用できるものではありません。コントローラーアクション内のビューモデルへのリクエストから読み取る JSON 文字列パラメーターを手動で逆シリアル化するか、ジョブを実行するカスタムモデルバインダーを記述する必要があります。理想的には、モデル データを JSON 文字列として投稿するのではなく、指定したコンテンツ タイプを尊重する必要がありますmultipart/form-data。したがって、このシナリオを処理する正しい方法は、コンテンツ タイプを尊重するために、要求を送信しているクライアント コードを変更することです。

于 2013-10-01T10:19:09.223 に答える