Asp.net mvc 4 提交视图上带有RenderPartial的模型

Asp.net mvc 4 提交视图上带有RenderPartial的模型,asp.net-mvc-4,razor,Asp.net Mvc 4,Razor,想象一下: 有一种观点。 有一个模型具有以下形式的此视图: Id List<Food> 这是在1模式 我有一个在这个模型中的视图。 然后我有一个局部视图,它接收列表并将其呈现在屏幕上。 但是,当表单提交时(按钮位于主视图上),数据无法绑定/未显示在模型中 能够将数据绑定回的正确方法是什么 当我把整个东西放在主视图中时,它确实起作用,但由于可重用性的原因,将它放在局部视图中是有意义的,这样我就可以将它“放到”任何页面上并传递数据 局部视图包含以下内容: @model List<

想象一下:

有一种观点。 有一个模型具有以下形式的此视图:

Id
List<Food>
这是在1模式

我有一个在这个模型中的视图。 然后我有一个局部视图,它接收列表并将其呈现在屏幕上。 但是,当表单提交时(按钮位于主视图上),数据无法绑定/未显示在模型中

能够将数据绑定回的正确方法是什么

当我把整个东西放在主视图中时,它确实起作用,但由于可重用性的原因,将它放在局部视图中是有意义的,这样我就可以将它“放到”任何页面上并传递数据

局部视图包含以下内容:

@model List<FoodProject.Web.Models.FoodViewModel>
而不是:

ModelName[0].PropertyName
模板编辑器就快到了,但给了我:

ModelName.[0].Id
我相信这就是为什么在发布时,我在模型集合中返回空值的原因
我怎样才能使它尊重模型绑定?我哪里出错了?

您应该熟悉编辑器模板,因为这对我很有用。我将展示我的例子,也许它会帮助你看到你错了什么

模型:

public class TestModelA
{
    public List<TestModelB> PropA { get; set; }
}

public class TestModelB
{
    public string PropB { get; set; }
}
主要观点:

@model MvcTest.Models.TestModelA
@using (Html.BeginForm())
{
    @Html.EditorFor(m => m.PropA)
    <input type="submit" value="Submit" />
}
@model MvcTest.Models.TestModelA
@使用(Html.BeginForm())
{
@EditorFor(m=>m.PropA)
}
ModelName.[0].Id
public class TestModelA
{
    public List<TestModelB> PropA { get; set; }
}

public class TestModelB
{
    public string PropB { get; set; }
}
@model MvcTest.Models.TestModelB
@Html.EditorFor(m => m.PropB)
@model MvcTest.Models.TestModelA
@using (Html.BeginForm())
{
    @Html.EditorFor(m => m.PropA)
    <input type="submit" value="Submit" />
}