У меня есть следующая иерархия классов в моем проекте ASP MVC 3. В одной записи могут быть контейнеры, а контейнеры могут содержать внутри. Классы контейнеров и содержимого являются абстрактными классами.ASP MVC 3 ajax с привязкой модели json к сложному классу
Мне нужно получить запрос JSon из браузера, и привязать его к модели, которая является типом класса Entry. Проблема в том, что класс DefaultModelBinder неправильно создал класс модели Entry, поскольку он не знал, какой тип конкретного контейнера он должен быть. Например:
var dataaa = { Name: 'Some Name', Containers: [{ ContainerId: 0}] };
$.ajax({
url: 'Add',
type: "POST",
data: JSON.stringify(dataaa),
contentType: 'application/json; charset=utf-8',
success: function (data) {
alert('hello');
});
+
[HttpPost]
public string Add(Entry entry)
{
return "foo";
}
После запроса приводит к исключению сервера: Невозможно создать абстрактный класс. Я могу добавить тип поля в JSon запрос, например:
{ Name: 'Some Name', Containers: [{ Type: 'FullContainer', ContainerId: 0}] };
Как инструктировать модель связывания механизм для отображения объекта, который получил Type поле значение «FullContainer» к классу FullContainer?