gpt4 book ai didi

asp.net-mvc-3 - 为什么会有 [Display(AutoGenerateField=false)] 和 [HiddenInput(DisplayValue = false)]?

转载 作者:行者123 更新时间:2023-12-02 17:59:59 25 4
gpt4 key购买 nike

标题已经说明了一切。

似乎有两种方法可以使用属性将字段标记为“请不要在 UI 上显示”。一个位于 DataAnnotations 命名空间中,我认为这是它所属的位置,另一个位于 MVC 特定的命名空间 System.Web.Mvc 中,我认为这是错误的位置。

这意味着对于 MVC 应用程序,我必须使用 MVC 命名空间弄脏我的域类,而不是使用“更通用”的 ComponentModel.DataAnnotations。

有什么方法可以让 MVC 框架注意到 Display() 属性吗?

最佳答案

您应该在 View 中使用 ViewModel,而不是您域中的实体。由于 ViewModel(或命令)是特定于 View 的,因此它们是否引用 System.Web.x 并不重要。

我会研究一下 SoC:http://en.wikipedia.org/wiki/Separation_of_concerns

和 Automapper/W ViewModels :http://bengtbe.com/blog/2009/04/14/using-automapper-to-map-view-models-in-asp-net-mvc/

另外,回答你的问题:

[HiddenInput(DisplayValue = false)] 将渲染 <input id="propId" name="propId" type="hidden" value="21" />

Display(AutoGenerateField=false)] 根本不会渲染。

关于asp.net-mvc-3 - 为什么会有 [Display(AutoGenerateField=false)] 和 [HiddenInput(DisplayValue = false)]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7439272/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com