作者:dmcm0009 | 来源:互联网 | 2023-05-21 13:42
我有几个领域我大多数的我的意见显示在我的MVC5代码的第一APP: ,[created_date]
,[created_by]
,[modified_date]
和[modified_by]
.对于用户,我想将这些也包括在我的Edit()
视图中,但与我的其他字段不同,我不希望它们可编辑(通常创建/通过和修改/数据不应该是可编辑的).
这就是我Edit()
目前在视图中声明的字段:
谁能提供制作这些领域的方法read-only
?
我想DisplayFor()
喜欢我的Details
查看,但是当我去保存记录,该值在我EditorFor()
的[created_date]
变化,从" 2015年2月18日 "为" 0001-01-01 ",并created_by
从我的系统用户名变化预先设置null
与验证消息" created_by字段是必需的." 我相信这与我对这些字段的模型注释有关,但是我不明白为什么DisplayFor()
没有通过我的控制器传递值,就像EditorFor()
那样......?
模型注释:
[Required]
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
public DateTime created_date { get; set; }
[Required]
public string created_by { get; set; }
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}")]
public DateTime? modified_date { get; set; }
public string modified_by { get; set; }
小智..
37
DisplayFor()
不会生成回发的控件.例如,除了显示文本之外,还需要包含隐藏的输入
另一种选择是使文本框只读
请注意,没有必要添加 @Html.ValidationMessageFor()
旁注:没有什么可以阻止用户更改隐藏输入的值(例如使用FireBug),因此一如既往,使用视图模型是最好的方法(视图模型不会在'readonly'上包含验证属性发布后,获取原始数据模型并在保存之前将相关视图模型属性映射到数据模型.
1> 小智..:
DisplayFor()
不会生成回发的控件.例如,除了显示文本之外,还需要包含隐藏的输入
另一种选择是使文本框只读
请注意,没有必要添加 @Html.ValidationMessageFor()
旁注:没有什么可以阻止用户更改隐藏输入的值(例如使用FireBug),因此一如既往,使用视图模型是最好的方法(视图模型不会在'readonly'上包含验证属性发布后,获取原始数据模型并在保存之前将相关视图模型属性映射到数据模型.