我有一个局部视图生成其他部分视图的列表,当我提交给控制器时,我只从最后添加的项目中获取我想要的数据。我显然做了些傻事,但我看不清楚。
@for (int i = 0; i < Model.Listofthings.Count(); i++)
{
<ul>
<li>
@{Html.RenderPartial("Thing", Model.Listofthings[i]);}
</li>
</ul>
}
在Thing partial中,我们有:
@model FancyObject
<script>
$(function () {
$('a#selectUser').click(function () {
$('form#selectUserForm').submit();
});
});
< link rel="stylesheet" href="~/Content/Site.css" />
< form id="selectUserForm" method="post" action="@Url.Action("SelectUser", "Home")">
@Html.HiddenFor(x => x.SomethingImportant)
<a href="#" id="selectUser" class="HyperLink1">
<i class="fa fa-female"></i>
<span class="nav-text">
@Model.AProperty
</span>
</a>
现在,当我提交表单时,我只从上面创建的最后一项获得“SomethingImportant”。我做错了什么?
答案 0 :(得分:0)
您正在获取最后一项,因为Thing
部分视图中的隐藏字段在每次foreach
次迭代中都会获得相同的名称。
list
或任何集合来获取控制器操作中所有隐藏值的集合。
public ActionResult GetMyValues(List<string> SomethingImportant)
iteration
上区分隐藏字段的名称,并在控制器中单独获取。