C# MVC将模型传递到子局部视图

C# MVC将模型传递到子局部视图,c#,asp.net-mvc-4,C#,Asp.net Mvc 4,让我用下面的例子来解释我的问题 我正在一个有以下观点的网站上工作: Country.cshtml(这是父视图) _Cities.cshtml代码: @foreach(var item in Model) { ... } @model IEnumerable<MvcExample.Models.Countries> .... // some code. @foreach(var item in Model) { .... // iterate the items in

让我用下面的例子来解释我的问题

我正在一个有以下观点的网站上工作:

Country.cshtml(这是父视图)

_Cities.cshtml代码:

@foreach(var item in Model)
{
...
}
@model IEnumerable<MvcExample.Models.Countries>
.... // some code.
@foreach(var item in Model)
{
    ....
    // iterate the items in the Model.
}

如何将Country.cshml中的模型传递到_Cities.html?

根据传递的模型,您在分区中使用的模型与在父视图中使用的模型相同。您应该在将使用该模型的部分的顶部有@model指令中引用的正确模型。因此,请尝试以下版本:

Country.cshtml

@model IEnumerable<MvcExample.Models.Countries>
@html.Partial("_States", Model) // passing Model of type IEnumerable<MvcExample.Models.Countries>
@model IEnumerable
@html.Partial(“\u States”,Model)//传递IEnumerable类型的模型
_States.cshtml具有子部分视图

@Html.Partial("_Cities", Model)
@model IEnumerable<MvcExample.Models.Countries>
.... // some other code
@Html.Partial("_Cities", Model) // passing Model of type IEnumerable<MvcExample.Models.Countries>
.... // some more code
@model IEnumerable
.... // 其他代码
@Html.Partial(“\u Cities”,Model)//传递IEnumerable类型的模型
.... // 还有代码吗
_Cities.cshtml代码:

@foreach(var item in Model)
{
...
}
@model IEnumerable<MvcExample.Models.Countries>
.... // some code.
@foreach(var item in Model)
{
    ....
    // iterate the items in the Model.
}
@model IEnumerable
.... // 一些代码。
@foreach(模型中的var项目)
{
....
//迭代模型中的项。
}
如果模型中有要传递的属性,也可以这样做:

@model IEnumerable<MvcExample.Models.Countries>
@html.Partial("_States", Model.States) // passing model of type IEnumerable<State> maybe?
@model IEnumerable
@html.Partial(“\u States”,Model.States)//是否可能传递IEnumerable类型的模型?

您也可以发布您的模型定义吗?\u cities.cshtml应该显示什么?您显示的方法是否无效?您只需要传递@Html.Partial(“~/relative/path/to/Partial”,Model),并在该部分中包含正确的模型,例如@Model IEnumerableIt听起来像是在使用partials,而实际上您应该只使用EditorTemplates。