これはこの質問に関連していますが、この場合は私が返すものではなく、モデル バインディングです。Postmarkを使用して受信メールを処理しています。これは、 JSON ペイロードを持つページに投稿されます。
以下のようなモデルと、この JSON ペイロード (application/json で投稿) を取り込んで処理するアクションがあります。
public class EmailModel
{
public IDictionary<string, string> Headers { get; set; }
public string From { get; set; }
public string Cc { get; set; }
public string HtmlBody { get; set; }
public string TextBody { get; set; }
public string ReplyTo { get; set; }
public string Tag { get; set; }
public string To { get; set; }
public string MessageID { get; set; }
public string MailboxHash { get; set; }
public string Subject { get; set; }
public List<Attachment> Attachments { get; set; }
}
public class Attachment
{
public string Content { get; set; }
public int ContentLength { get; set; }
public string ContentType { get; set; }
public string Name { get; set; }
}
これは小さな添付ファイルには問題なく機能しますが、デフォルトの maxJsonLength プロパティを超えると、逆シリアル化でエラーが発生します。(「JSON JavaScriptSerializer を使用したシリアル化または逆シリアル化中にエラーが発生しました。文字列の長さが maxJsonLength プロパティで設定された値を超えています。」) 画像の添付ファイルを受け入れたいので、これはほとんどの画像が失敗することを意味します。
web.config を更新しようとしましたが、他のスレッドによると、これは MVC コントローラーには役立ちません。カスタム IModelBinder で言及されていることはおそらくできると思いますが、逆シリアル化をインターセプトする方法に苦労しています。(つまり、デシリアライズが既に行われているため、まだ失敗しています)。
助言がありますか?私が見逃しているのはただのばかげたものだと確信しています....