edit - 只是改写问题
如果我有国家>州>城市
在我的国家/地区控制器中,我使用 id 使用国家/地区及其州填充视图模型。
在观点中,我可以说"对于每个州,显示人口"。
我不明白的是,如何用同样的观点说"对于每个州,显示每个城市"。
所有内容是否都在同一个视图模型中?我应该使用嵌套分部视图吗?如何将模型从国家/地区视图传递到状态部分视图,然后再传递到城市部分视图?
结束编辑
我以父>子>子>子的方式组织数据
这是我的视图模型实体
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; }
但是,此视图模型不能提供给视图,因为在当前上下文中,它不存在。
我想这是一种常见的模式,但我还没有找到类似的例子......
您的模型不正确。 这是正确的模型:
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; }
}