Мой проект является проектом ASP.Net MVC.В JavaScript у меня есть строка ISO 8601, например "PT15M"
.Как определить мою модель так, чтобы она правильно сериализовалась в TimeSpan
объект?
Вот мой Javascript:
var model = new TemplateMapModel();
model.DelayBy = "PT15M";
if (PerformClientSideValidation(model)) {
$.ajax({
type: 'POST',
url: '/api/TemplateMap',
data: { templateMap: model, files: files },
success: function (result) {
$('#modalTemplateMap').modal('toggle');
},
error: function (xhr, textStatus, e) {
var error = xhr.responseJSON.Message;
ShowMessageBox("Error", error);
ToggleBusyIndicator(false);
},
complete: function (xhr, textStatus) {
TEMPLATEMAPPING.grid.reload();
}
});
}
Я пробовал это в моей модели:
public TimeSpan DelayBy { get; set; }
В результате получается нулевое значение.Я также попробовал это:
public string DelayBy { get; set; }
Это будет работать, и тогда я смогу использовать XmlConvert.ToTimeSpan()
, чтобы получить то, что я хочу, однако я бы предпочел не делать это таким образом, потому что это не похоже направильный способ - объявить мой DelayBy как строку, а затем преобразовать его в мою бизнес-логику.Я хотел бы использовать это определение:
public TimeSpan DelayBy { get; set; }
и чтобы MVC автоматически преобразовывал его в объект TimeSpan
и обратно.Есть идеи?