У меня есть модель задачи:Отправить модель со списком в контроллер через AJAX
public class Task
{
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public DateTime? DueDate { get; set; }
public int ProjectId { get; set; }
public virtual ICollection<Useraccount> Useraccounts { get; set; }
...
}
я хотел бы, чтобы отправить модель задачи на мой контроллер через AJAX:
function sendForm(projectId, useraccountIds, name, date, description, target) {
$.ajax({
url: target,
type: "POST",
contentType: 'application/json',
data: JSON.stringify({
projectId: projectId,
useraccounts: useraccountIds,
name : name,
dueDate : date,
description : description
}),
success: ajaxOnSuccess,
error: function (jqXHR, exception) {
alert('Es ist ein Fehler bei der Übertragung aufgetreten.');
}
});
}
Это работает отлично но есть большая проблема с useraccounts. Переменная useraccountIds представляет собой целочисленный массив, но не может быть сопоставлена с ICollection Useraccounts моей модели задачи.
Как я могу создать объект useraccount для каждого идентификатора и сопоставить его с коллекцией useraccounts? Этим объектам не нужно больше, чем его идентификатор.
Благодарим за предложение. Задача - это реальная модель сущности. К сожалению, мы не используем модели просмотра для получения данных из представления контроллеру, мы просто отправляем модели просмотра с контроллера на представление. Есть ли другой подход? «Комплексный объект Json» или что-то вроде этого? – mosquito87
Вы отправляете модель просмотра с контроллера на вид, но не наоборот? Это странно. Во всяком случае, я обновлю ответ, вернусь через некоторое время. –
Да, я просто сделал то же самое, что вы опубликовали несколько минут назад, и в основном это работает. Но мой объект useraccount довольно сложный, есть еще несколько свойств, которые требуются (имя, адрес электронной почты, пароль), поэтому проверка ModelState.IsValid не выполняется. :( Я думаю, что нам нужно передумать наш дизайн ... – mosquito87