首页 > 解决方案 > 为什么 Html.Hidden 在 C# ASP.NET MVC razor 视图中不起作用?

问题描述

我想在我的剃刀视图中使用 foreach 填充表单的隐藏输入。它是这样的:

@foreach (var commodity in ((FilterViewModel)ViewBag.ViewModel).commodities)
{
    Html.Hidden("commodities", commodity);
}

这是我的视图模型:

public class FilterViewModel
{
    public string commodityType { get; set; }
    public string department { get; set; }
    public string repository { get; set; }
    public string[] commodities { get; set; }
    public string[] purchaseReportTypes { get; set; }
    public string dateValue_1 { get; set; }
    public string dateValue_2 { get; set; }
}   

尽管 foreach lopps 通过项目,隐藏的输入在渲染后不会添加到我的 HTML 源中。然而,这个工作得很好,我不知道为什么Html.Hidden不工作:

@foreach (var commodity in ((FilterViewModel)ViewBag.ViewModel).commodities)
{
    <input type="hidden" id="commodities" name="commodities" value="@commodity" />
}

标签: c#htmlasp.net-mvcrazor

解决方案


你错过了@之前Html.Hidden

@foreach (var commodity in ((FilterViewModel)ViewBag.ViewModel).commodities)
{
    @Html.Hidden("commodities", commodity);
}

顺便说一句,您应该考虑在您的 html 中没有相同的 id 以避免任何问题。


推荐阅读