【发布时间】:2018-06-19 16:05:30
【问题描述】:
我想将图片设置从页面传递到控制器。我通过 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
}};
我通过 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)
我的模型如下所示:
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
}
我的“大小”属性有问题。控制器接收“大小”属性 与:
{Height = 0, Width = 0}
我也尝试过使用 Rectangle 类,但存在同样的问题。我将 JSON 值解析为 int:
Size: {
Width: 123,
Height: 33
}
但仍在控制器中,模型具有 {Height = 0, Width = 0}。其他属性(ID、枚举等)运行良好。我在我的应用程序中使用 DefaultModelBinder。
【问题讨论】: