c# - 传递 @Html.DisplayFor() - 从 View 到 Controller 的值

标签 c# asp.net-mvc asp.net-mvc-5

我正在上这些课:

public class ProductViewModel
{
    public IEnumerable<Product> Products { get; set; }

}

public class Product
{
    public int ArticeNr { get; set; }
    public string Name { get; set; }

}

还有这个观点

@model ProductsViewModel

@using (Html.BeginForm("Index", "Home", FormMethod.Post))
{
<table class="table">

    @foreach (var item in Model.Products) {
        <tr>
            <td>
                @Html.DisplayFor(modelItem => item.ArticleNr)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.Name)
            </td>
        </tr>
    }
</table>

<input type="submit" value="submit" name="submitButton" />
}

如何将我的所有值从 Model.Products 传递到 Controller ?我希望将 foreach 循环中的所有值发送到 Controller

我的 Controller 将 ProductsViewModel 作为参数。但是我在 model.Products 中发布后的值是空的。

        public ActionResult Index(ProductsViewModel model) //here, model.Products is always null after post
        {
            //LOGIC
        }

最佳答案

@Html.DisplayFor 只是在 View 中显示值。

如果你想在发布时将值传递回 Controller ,那么你还需要一个@Html.HiddenFor

关于c# - 传递 @Html.DisplayFor() - 从 View 到 Controller 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25563190/

相关文章:

asp.net - 如果我使用 InRequestScope(),在哪里执行 DBContext.SaveChanges()

jquery - Foundation 5 Datepicker 失败,或者是我

c# - 检查网页是否在平板电脑上运行

c# - Stateful Expression 访问者多次运行问题

c# - 为什么在当前类是子类时对方法或属性使用 sealed

c# - System.Environment.OSVersion .NET Core 5.0 Framework 替代品?

javascript - CSS 未应用于打印

javascript - 我不明白数学结果 1+2*3*+4*5 = 121

javascript - MVC 中的 jQuery Accordion

c# - 使用 MVC 3 不显眼的 Javascript 进行全局 jQuery AJAX 错误处理