5

これはこの質問に関連していますが、この場合は私が返すものではなく、モデル バインディングです。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 で言及されていることはおそらくできると思いますが、逆シリアル化をインターセプトする方法に苦労しています。(つまり、デシリアライズが既に行われているため、まだ失敗しています)。

助言がありますか?私が見逃しているのはただのばかげたものだと確信しています....

4

1 に答える 1