0

我有一个任务模型:

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.');
        }
    });
}

这工作正常,但用户帐户存在大问题。变量 useraccountIds 是一个整数数组,但不能映射到我的任务模型的 ICollection Useraccounts。

如何为每个 id 创建一个 useraccount 对象并将其映射到 useraccounts 集合?这些对象只需要它的 id。

4

1 回答 1

0

如何为每个 id 创建一个 useraccount 对象并将其映射到 useraccounts 集合?这些对象只需要它的 id。

那么你只需要将其声明为:

public virtual IEnumerable<int> Useraccounts { get; set; }

如果Task是一个实体而不是一个视图模型,那么最好为您的任务编写一个视图模型,因为您提到Useraccount除了Id.

更新:Useraccounts用javascript 构建你的:

var useraccounts = {
 { Id: value1 },
 { Id: value2 }
};

然后将其包含在您的帖子中:

data: JSON.stringify({
    projectId: projectId,
    useraccounts: useraccounts ,
    name : name,
    dueDate : date,
    description : description
}),

如果您的用户帐户模型上有数据注释,那将不起作用。如果你这样做了,那就一团糟,因为你必须将 a 的所有必需字段复制Useraccount到视图中,将其放入隐藏字段(hacky)并将其发送回方法。

于 2013-04-09T07:16:02.710 回答