Asp.net mvc MVC获取和发布数据

Asp.net mvc MVC获取和发布数据,asp.net-mvc,post,razor,get,Asp.net Mvc,Post,Razor,Get,很抱歉这个问题真的很难回答,但这让我很困惑 我有一个控制器检查,方法Configure通过一个包含3个列表的模型。 我知道我应该使用HiddenFor来保留信息,但我不知道如何使用列表来实现这一点 我有这些隐藏的字段,但它们似乎无法保留信息 @Html.HiddenFor(model => Model.inspection) @Html.HiddenFor(model => Model.assignedParts) for (int i = 0; i < Model.Co

很抱歉这个问题真的很难回答,但这让我很困惑

我有一个控制器检查,方法Configure通过一个包含3个列表的模型。

我知道我应该使用HiddenFor来保留信息,但我不知道如何使用列表来实现这一点

我有这些隐藏的字段,但它们似乎无法保留信息

@Html.HiddenFor(model => Model.inspection)
@Html.HiddenFor(model => Model.assignedParts)

for (int i = 0; i < Model.ConfigList.Count; i++)
{
    @Html.HiddenFor(model => Model.ConfigList[i])
}
@Html.HiddenFor(model=>model.inspection)
@Html.HiddenFor(model=>model.assignedParts)
对于(int i=0;imodel.ConfigList[i])
}

每个Razor指令都会转换为html以显示在浏览器中。在这种情况下,Model.assignedParts的指令在html中可能类似于以下内容:

通过运行应用程序并查看源代码,您可以准确地看到它是什么。分配给value的文本只是
Model.assignedParts.ToString()
。解决问题的最简单方法是将视图更改为仅使用实际更改的模型片段

如果要在视图中包含列表,则需要对列表进行foreach,如果列表成员具有属性,则必须为每个属性设置一个
@Html.HiddenFor
,例如:

@foreach(Model.part中的变量部分){
@Html.HiddenFor(part.Property1)
@Html.HiddenFor(part.Property2)

}

是的,我想应该是这样的,我当然希望这只是一件简单的事情,哈哈。谢谢你!如果这些解决方案有效…您不能使用
foreach
循环为集合生成表单控件,并且这无法绑定到模型(请参阅)。更不用说,代码甚至不能编译。为什么你会通过生成大量隐藏的输入,将它们发送到视图,然后将它们原封不动地发送回控制器来降级你的应用程序。