使用与主视图不同的模型渲染强类型的局部视图

时间:2014-01-14 17:13:43

标签: asp.net-mvc

我有一个用户模型和一个源自它的“AddUser”视图。

用户模型还包含IList类别中的类别列表。

现在当我在AddUser视图中渲染局部视图时,我得到的对象引用没有设置为对象错误的实例。

用户模型:

public class User
    {
        public int Id { set; get; }
        public string Name { get; set; }
        public IList<Categories> Categories{ get; set; }
    }

AddUser查看:

    @Models.User
     @using(Html.BeginForm())
    {

         @Html.EditorFor(x => x.Name)
  @Html.RenderPartial("_AddCategory", Model.Categories[0]) 

    }

请帮忙。

由于

编辑: _AddCategory查看:

@model Models.Categories


@using (Html.BeginForm())
{


     <fieldset>
        <legend></legend>

                            @Html.TextBoxFor(model => model.CategoryName)
                @Html.TextBoxFor(model => model.CategoryDescription)
    </fieldset>
}

1 个答案:

答案 0 :(得分:1)

您是否尝试在构造函数中初始化集合?

public class User
{
    public User()
    {
        Categories = new List<Categories>();
    }

    public int Id { set; get; }
    public string Name { get; set; }
    public IList<Categories> Categories { get; set; }
}

另外,为什么要将第一个类别从“类别”属性传递到“添加类别”部分?它不是一个空的Category对象,因为你要添加一个新对象吗?

@Html.RenderPartial("_AddCategory", new Categories())

在命名标准方面,我可能会更改您的命名标准,并将您的对象命名为singular,即Category。然后你的财产变成:

IList<Category> Categories { get; set; }