隐藏输入不会移动

本文关键字:移动 输入 隐藏 | 更新日期: 2023-09-27 18:35:13

我有一个包含这些语句的表单:

@Html.HiddenFor(model => model.CompanyId)
@Html.HiddenFor(model => model.OriginalDailyTimeOption)
@Html.HiddenFor(model => model.OriginalWorkWeekStartDay)

当我查看源代码时,我在表单元素中看到这些元素,当我提交表单时,这些属性都正确返回。

现在,我读到了在我的视图模型中使用[HiddenInput],所以我尝试了这个:

[HiddenInput(DisplayValue = true)]
public int CompanyId { get; set; }
// Original values
[HiddenInput(DisplayValue = true)]
public DayOfWeek OriginalWorkWeekStartDay { get; set; }
[HiddenInput(DisplayValue = true)]
public bool OriginalDailyTimeOption { get; set; }

删除了我之前@Html语句。

现在,当我

查看源代码时,我看不到表单中的元素,当我提交表单时,值不会显示在控制器操作中。 我也在没有(DisplayValue = true)的情况下尝试了HiddenInput属性,但我得到了相同的结果。 我也尝试了DisplayValue = false。

我的隐藏输入属性有问题吗? (作为记录,我正在使用IE 11进行测试。

隐藏输入不会移动

当我搜索"Html.HiddenFor & HiddenInput 属性之间的差异"时,我在另一篇文章(由podiluska)中找到了这一点:

"HiddenInput 是(视图)模型中字段的属性 - 这意味着它可以跨多个视图使用,并指示该字段应隐藏在 EditorFor 帮助程序渲染的任何位置。"

HiddenInputAttribute 上的 MSDN 页面没有提到 EditorFor,所以这就是我所缺少的。

包括一个 [HttpPost] 还要确保 hiddenfor 在你的表单中

[HttpPost]
public ActionResult action(Model model)
{
     Model _model = new Model();
     _model.CompanyId = model.CompanyId;
    etc...

}