热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在MVCView上将EditorFor()值显示为只读?

如何解决《在MVCView上将EditorFor()值显示为只读?》经验,为你挑选了1个好方法。

我有几个领域我大多数的我的意见显示在我的MVC5代码的第一APP: ,[created_date],[created_by],[modified_date][modified_by].对于用户,我想将这些也包括在我的Edit()视图中,但与我的其他字段不同,我不希望它们可编辑(通常创建/通过和修改/数据不应该是可编辑的).

这就是我Edit()目前在视图中声明的字段:

    
@*@Html.LabelFor(model => model.created_date, htmlAttributes: new { @class = "control-label col-md-2" })*@ Created Date:
@Html.DisplayFor(model => model.created_date, new { htmlAttributes = new { @class = "form-control" } }) @Html.ValidationMessageFor(model => model.created_date, "", new { @class = "text-danger" })
@*@Html.LabelFor(model => model.created_by, htmlAttributes: new { @class = "control-label col-md-2" })*@ By:
@Html.DisplayFor(model => model.created_by, new { htmlAttributes = new { @class = "form-control" } }) @Html.ValidationMessageFor(model => model.created_by, "", new { @class = "text-danger" })
@*@Html.LabelFor(model => model.modified_date, htmlAttributes: new { @class = "control-label col-md-2" })*@ Modified Date:
@Html.DisplayFor(model => model.modified_date, new { htmlAttributes = new { @class = "form-control" } }) @Html.ValidationMessageFor(model => model.modified_date, "", new { @class = "text-danger" })
@*@Html.LabelFor(model => model.modified_by, htmlAttributes: new { @class = "control-label col-md-2" })*@ By:
@Html.DisplayFor(model => model.modified_by, new { htmlAttributes = new { @class = "form-control" } }) @Html.ValidationMessageFor(model => model.modified_by, "", new { @class = "text-danger" })

谁能提供制作这些领域的方法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.DisplayNameFor(m => created_by)
@Html.DisplayFor(model => model.created_by @Html.HiddenFor(m => created_by)

另一种选择是使文本框只读

@Html.LabelFor(model => model.created_by, new { @class = "control-label col-md-2" })
@Html.TextBoxFor(model => model.created_by, new { @class = "form-control", @readOnly= "readonly" })

请注意,没有必要添加 @Html.ValidationMessageFor()

旁注:没有什么可以阻止用户更改隐藏输入的值(例如使用FireBug),因此一如既往,使用视图模型是最好的方法(视图模型不会在'readonly'上包含验证属性发布后,获取原始数据模型并在保存之前将相关视图模型属性映射到数据模型.



1> 小智..:

DisplayFor()不会生成回发的控件.例如,除了显示文本之外,还需要包含隐藏的输入

@Html.DisplayNameFor(m => created_by)
@Html.DisplayFor(model => model.created_by @Html.HiddenFor(m => created_by)

另一种选择是使文本框只读

@Html.LabelFor(model => model.created_by, new { @class = "control-label col-md-2" })
@Html.TextBoxFor(model => model.created_by, new { @class = "form-control", @readOnly= "readonly" })

请注意,没有必要添加 @Html.ValidationMessageFor()

旁注:没有什么可以阻止用户更改隐藏输入的值(例如使用FireBug),因此一如既往,使用视图模型是最好的方法(视图模型不会在'readonly'上包含验证属性发布后,获取原始数据模型并在保存之前将相关视图模型属性映射到数据模型.


推荐阅读
  • 使用 Vuex 管理表单状态:当输入框失去焦点时自动恢复初始值 ... [详细]
  • 在Django中提交表单时遇到值错误问题如何解决?
    在Django项目中,当用户提交包含多个选择目标的表单时,可能会遇到值错误问题。本文将探讨如何通过优化表单处理逻辑和验证机制来有效解决这一问题,确保表单数据的准确性和完整性。 ... [详细]
  • 技术日志:使用 Ruby 爬虫抓取拉勾网职位数据并生成词云分析报告
    技术日志:使用 Ruby 爬虫抓取拉勾网职位数据并生成词云分析报告 ... [详细]
  • ButterKnife 是一款用于 Android 开发的注解库,主要用于简化视图和事件绑定。本文详细介绍了 ButterKnife 的基础用法,包括如何通过注解实现字段和方法的绑定,以及在实际项目中的应用示例。此外,文章还提到了截至 2016 年 4 月 29 日,ButterKnife 的最新版本为 8.0.1,为开发者提供了最新的功能和性能优化。 ... [详细]
  • DRF框架中Serializer反序列化验证机制详解:深入探讨Validators的应用与优化
    在DRF框架的反序列化验证机制中,除了基本的字段类型和长度校验外,还常常需要进行更为复杂的条件限制校验。通过引入`validators`模块,可以实现自定义校验逻辑,如唯一字段校验等。本文将详细探讨`validators`的使用方法及其优化策略,帮助开发者更好地理解和应用这一重要功能。 ... [详细]
  • 在探讨如何在Android的TextView中实现多彩文字与多样化字体效果时,本文提供了一种不依赖HTML技术的解决方案。通过使用SpannableString和相关的Span类,开发者可以轻松地为文本添加丰富的样式和颜色,从而提升用户体验。文章详细介绍了实现过程中的关键步骤和技术细节,帮助开发者快速掌握这一技巧。 ... [详细]
  • Unity3D 中 AsyncOperation 实现异步场景加载及进度显示优化技巧
    在Unity3D中,通过使用`AsyncOperation`可以实现高效的异步场景加载,并结合进度条显示来提升用户体验。本文详细介绍了如何利用`AsyncOperation`进行异步加载,并提供了优化技巧,包括进度条的动态更新和加载过程中的性能优化方法。此外,还探讨了如何处理加载过程中可能出现的异常情况,确保加载过程的稳定性和可靠性。 ... [详细]
  • 深入剖析Java中SimpleDateFormat在多线程环境下的潜在风险与解决方案
    深入剖析Java中SimpleDateFormat在多线程环境下的潜在风险与解决方案 ... [详细]
  • 使用 ListView 浏览安卓系统中的回收站文件 ... [详细]
  • 基于 Vue 和 Element UI 实现的简洁登录界面设计
    本文介绍了一种利用 Vue.js 和 Element UI 框架构建的简洁登录界面设计。该设计不仅注重用户体验,还确保了界面的美观性和易用性。通过合理的布局和组件配置,实现了高效、响应式的登录功能,适用于多种前端应用场景。 ... [详细]
  • 在 Vue 应用开发中,页面状态管理和跨页面数据传递是常见需求。本文将详细介绍 Vue Router 提供的两种有效方式,帮助开发者高效地实现页面间的数据交互与状态同步,同时分享一些最佳实践和注意事项。 ... [详细]
  • 在使用SSH框架进行项目开发时,经常会遇到一些常见的问题。例如,在Spring配置文件中配置AOP事务声明后,进行单元测试时可能会出现“No Hibernate Session bound to thread”的错误。本文将详细探讨这一问题的原因,并提供有效的解决方案,帮助开发者顺利解决此类问题。 ... [详细]
  • 在 Kubernetes 中,Pod 的调度通常由集群的自动调度策略决定,这些策略主要关注资源充足性和负载均衡。然而,在某些场景下,用户可能需要更精细地控制 Pod 的调度行为,例如将特定的服务(如 GitLab)部署到特定节点上,以提高性能或满足特定需求。本文深入解析了 Kubernetes 的亲和性调度机制,并探讨了多种优化策略,帮助用户实现更高效、更灵活的资源管理。 ... [详细]
  • Netty框架中运用Protobuf实现高效通信协议
    在Netty框架中,通过引入Protobuf来实现高效的通信协议。为了使用Protobuf,需要先准备好环境,包括下载并安装Protobuf的代码生成器`protoc`以及相应的源码包。具体资源可从官方下载页面获取,确保版本兼容性以充分发挥其性能优势。此外,配置好开发环境后,可以通过定义`.proto`文件来自动生成Java类,从而简化数据序列化和反序列化的操作,提高通信效率。 ... [详细]
  • 本文探讨了Android系统中支持的图像格式及其在不同版本中的兼容性问题,重点涵盖了存储、HTTP传输、相机功能以及SparseArray的应用。文章详细分析了从Android 10 (API 29) 到Android 11 的存储规范变化,并讨论了这些变化对图像处理的影响。此外,还介绍了如何通过系统升级和代码优化来解决版本兼容性问题,以确保应用程序在不同Android版本中稳定运行。 ... [详细]
author-avatar
dmcm0009
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有