隐藏输入不会移动
本文关键字:移动 输入 隐藏 | 更新日期: 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...
}