C# Asp.net MVC3在动作链接中的模型内传递模型

C# Asp.net MVC3在动作链接中的模型内传递模型,c#,asp.net-mvc,url-parameters,C#,Asp.net Mvc,Url Parameters,我在通过对象链接传递模型时遇到问题 这是我的模型 public class ItemImage { [Required,Key,DatabaseGenerated(DatabaseGeneratedOption.Identity)] public int Id { get; set; } [DataType(DataType.ImageUrl)] public string Url { get; set; } [Required] public

我在通过对象链接传递模型时遇到问题

这是我的模型

public class ItemImage
{
    [Required,Key,DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }

    [DataType(DataType.ImageUrl)]
    public string Url { get; set; }

    [Required]
    public int Width { get; set; }

    [Required]
    public int Height { get; set; }

}
public class UserItem
{
    public UserItem()
    {
        Image = new ItemImage();
        Private = true;
    }

    #region
    [Required, Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int ID { get; set; }

    [Required]
    public string EAN { get; set; }

    [Required]
    public string Title { get; set; }

    [Required]
    [DataType(DataType.Date)]
    public DateTime AddDate { get; set; }

    [Required]
    [DataType(DataType.Date)]
    public DateTime PublishDate { get; set; }

    [Required]
    public string Publisher  { get; set; }

    [Required]
    public string Binding { get; set; }

    [EnumDataType(typeof(ItemType))]
    public ItemType Type { get; set; }

    [EnumDataType(typeof(ItemStatus))]
    public ItemStatus Status { get; set; }

    [Required]
    public ItemImage Image { get; set; }

    [Required]
    public int Quantity { get; set; }

    [Required]
    public bool Private { get; set; }
    #endregion
} // other properties
}

// the view code
       @foreach (InventoryApp.Models.UserItem item in Model)
        {
            <tr>
                <td>
                     @Html.ActionLink("Add To Library", "Add",item)
                </td>
            </tr>
        }
下面是url(操作链接)的样子,因为您可以看到我的嵌入模型对象没有正确传递


Add/0?Image=InventoryApp.Models.ItemImage&

您正在使用的
ActionLink
的重载需要路由值。根据您的操作预期,类似的操作应该会起作用:

@Html.ActionLink("Add To Library", "Add", new { Url = item.Url })
这是假设您的
Add
操作需要一个字符串url


另一方面,如果您希望将整个模型传递给操作,那是不可能的。

Hmm结束了故障,只传递了在服务器端重新创建模型对象所需的导入属性,然后将其添加到数据库中。
@Html.ActionLink("Add To Library", "Add", new { Url = item.Url })