Asp.net mvc 模型绑定不';无法使用System.Drawing对象

Asp.net mvc 模型绑定不';无法使用System.Drawing对象,asp.net-mvc,model-binding,Asp.net Mvc,Model Binding,我想将图片设置从页面传递到控制器。我通过JSON传递数据。我的JS对象如下所示: var fields = this.props.settings; var settings = { ID: fields.id, Title: fields.title, Size: { Width: fields.size.width, Height: fields.size.height

我想将图片设置从页面传递到控制器。我通过JSON传递数据。我的JS对象如下所示:

    var fields = this.props.settings;
    var settings = {
        ID: fields.id,
        Title: fields.title,
        Size: {
            Width: fields.size.width,
            Height: fields.size.height
        },
        SizeType: fields.sizeType,
        MimeType: {
            ID: fields.id,
            Title: fields.title,
            Extension: fields.ext
        }};
public class ConvertSettings : IListItem
{
    public int? ID { get; set; }  //OK

    public string Title { get; set; } //OK

    public System.Drawing.Size Size { get; set; } //NOK 

    public SizeType SizeType { get; set; } //OK

    public MimeType MimeType { get; set; } //OK
}
我通过AJAX发送数据:

        $.ajax({
        url: url,
        type: 'post',
        data: JSON.stringify({ settings: settings }),
        dataType: 'json',
        contentType: 'application/json; charset=utf-8',
        success: function (message) {
            self.refs.progress.onSuccess(message);
        },
        error: function (message) {
            self.refs.progress.onFailed("Ups... something wrong :(");
        }
    });
我的控制器看起来像:

    public ActionResult ConvertPictures(ConvertSettings settings)
我的模型如下所示:

    var fields = this.props.settings;
    var settings = {
        ID: fields.id,
        Title: fields.title,
        Size: {
            Width: fields.size.width,
            Height: fields.size.height
        },
        SizeType: fields.sizeType,
        MimeType: {
            ID: fields.id,
            Title: fields.title,
            Extension: fields.ext
        }};
public class ConvertSettings : IListItem
{
    public int? ID { get; set; }  //OK

    public string Title { get; set; } //OK

    public System.Drawing.Size Size { get; set; } //NOK 

    public SizeType SizeType { get; set; } //OK

    public MimeType MimeType { get; set; } //OK
}
我对“大小”属性有问题。控制器接收“大小”属性 与:

我也尝试过矩形类,但也有同样的问题。我将JSON值解析为int:

Size: {
        Width: 123,
        Height: 33
    }
但仍然在控制器中,模型具有{Height=0,Width=0}。其他属性(ID、枚举等)工作正常。我在应用程序中使用DefaultModelBinder。

没有无参数构造函数,因此,
DefaultModelBinder
无法初始化它并设置其值

例如,创建您自己的类来接收和绑定值(并且使用
系统。无论如何,在mvc应用程序中绘制
命名空间是不合适的)

public class ImageSize
{
    public int Width { get; set; }
    public int Height { get; set }
}
并更改
ConvertSettings
以使用它