微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

asp.net-mvc – @ Html.HiddenFor返回null值

我试图将表的结果返回给控制器以进行进一步操作.一旦返回到控制器,该值显示为null.在过去,我已经能够使用@ 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.

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

解决方法

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

将模型改变为IList< T>

@model List<Project.Models.Item>

并使用for循环

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐