使用viewModels嵌套的部分视图

时间:2013-11-07 18:19:55

标签: c# asp.net-mvc entity-framework model viewmodel

编辑 - 只需重新修改问题

如果我有国家>州>城市

在我的国家/地区控制器中,我使用国家/地区使用ID及其状态填充视图模型。

在视图中,我可以说“对于每个州,显示人口”。

我不明白的是,如何在同一视图中说“每个州都要展示每个城市”。

一切都在同一个视图模型中吗?我应该使用嵌套的部分视图吗?如何将模型从国家/地区视图传递到州局部视图到城市局部视图?

结束修改

我的数据以父级>子>子>子时尚

组织

以下是我的viewmodel实体

public country country { get; set; }
public IList<state> states { get; set; }
public IList<city> cities { get; set; }

这是我的观点

@model myproject.viewModel.vwcountry
@for (var c = 0; c < Model.country.states.Count(); c++)
{
     @Html.Partial("_states", Model.states[c]);
}

第一个局部视图模型

@model myModel.state
//partial view displays stuff from model

这一切都很好。

现在,我想添加州的孩子们。这就是我失去的地方。

我觉得我应该传递视图模型而不是状态模型,但这甚至都不会编译。

我觉得应该有一个像这样的独立视图模型......

public state state { get; set; }
public IList<cities> cities { get; set; }

但是这个视图模型无法在当前上下文中提供给视图,它不存在。

我想这是一种常见的模式,但我没有找到类似的例子......

1 个答案:

答案 0 :(得分:0)

你的模型不正确。这是正确的模型:

public class vwcountry
{
public country country { get; set; }
public IList<state> states { get; set; }
}

public class state
{
public state state { get; set; }
public IList<city> cities { get; set; }
}