gpt4 book ai didi

asp.net-mvc - @Html.HiddenFor 返回空值

转载 作者:太空宇宙 更新时间:2023-11-03 15:35:30 29 4
gpt4 key购买 nike

我正在尝试将表的结果返回给 Controller 以供进一步操作。一旦返回到 Controller ,该值显示为空。在过去,我已经能够使用 @Html.HiddenFor 返回值,但在这种情况下它似乎不起作用。不确定我在这里做错了什么。任何帮助是极大的赞赏。

@model IEnumerable<Project.Models.Item>
@{
ViewBag.Title = "Welcome to The Project";
}


@using (Html.BeginForm("UpdateQuality", "Home", new { ReturnUrl = ViewBag.ReturnUrl }, FormMethod.Post, new { @class = "form-horizontal", role = "form" }))
{
<div class="row">
<div class="form-group">
<table class="table table-bordered">
<tr>
<th>@Html.DisplayNameFor(m => m.Name)</th>
<th>@Html.DisplayNameFor(m => m.SellIn)</th>
<th>@Html.DisplayNameFor(m => m.Quality)</th>
</tr>
@for (int i = 0; i < Model.Count(); i++)
{
<tr>
<td>@Html.DisplayFor(m => m.ElementAt(i).Name)</td>
<td>@Html.DisplayFor(m => m.ElementAt(i).SellIn)</td>
<td>@Html.DisplayFor(m => m.ElementAt(i).Quality)</td>

@Html.HiddenFor(m => m.ElementAt(i).Name)
@Html.HiddenFor(m => m.ElementAt(i).SellIn)
@Html.HiddenFor(m => m.ElementAt(i).Quality)

</tr>
}
</table>
<div class="form-group">
<div style="margin-top: 50px">
<input type="submit" class="btn btn-primary" value="Advance Day"/>
</div>
</div>
</div>
</div>
}

这是返回 null 的 Controller 。

public ActionResult UpdateQuality(List<Item> Items )
{
return View("Index", (object)Items);
}

最佳答案

您不能使用 ElementAt()HtmlHelper生成表单控件的方法(查看您生成的 name 属性 - 它与您的模型不匹配)。

要么将模型更改为 IList<T>

@model List<Project.Models.Item>

并使用 for循环

@for (int i = 0; i < Model.Count; i++)
{
....
@Html.HiddenFor(m => m.[i].Name)
....

或更改使用自定义 EditorTemplate对于类型 Item ,并在主视图中使用 @Html.EditorFor(m => m)为集合中的每个项目生成正确的 html。

关于asp.net-mvc - @Html.HiddenFor 返回空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32012334/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com