asp.net-mvc-3 - : [ScaffoldColumn (false)] and [Display (AutoGenerateField = false)] 之间的区别

标签 asp.net-mvc-3 razor data-annotations scaffolding mvc-editor-templates

为了在编辑 View 中呈现 HTML,我使用了帮助器 @Html.EditorForModel()

我的模型:

[Required(ErrorMessage = "Campo obrigatório")]
[Display(Name = "Nome completo")]
public string Name { get; set; }

[Required(ErrorMessage = "Campo é obrigatório")]
[StringLength(100, ErrorMessage = "A {0} deve ter pelo menos {2} characteres.", MinimumLength = 6)]
[DataType(DataType.Password)]
[Display(Name = "Senha")]
public string Password { get; set; }

[DataType(DataType.Password)]
[Display(Name = "Confirmar senha")]
[Compare("Password", ErrorMessage = "A nova senha e a confirmação da senha não conincidem.")]
public string ConfirmPassword { get; set; }

[Required(ErrorMessage = "Campo obrigatório")]
[Display(Name = "Convidado")]
[UIHint("IsGuest")]
public bool IsGuest { get; set; }

[RequiredIf("IsGuest", true, ErrorMessage = "Campo é obrigatório")]
[ScaffoldColumn(false)]
public string CodeGuest { get; set; }

属性:CodeGuest 不应由帮助器@Html.EditorForModel() 创建。 (我想手动创建它。)

在网上查了一下,发现了几点,想知道其中的区别。

记住我不希望它被隐藏,这个字段只会由这个创建

编辑器模板 (IsGuest.cshtml):

@using BindSolution.AndMarried.Model;
@model BindSolution.AndMarried.Models.RegisterModel
@Html.EditorFor(e => e.IsGuest)
<span>TESTE</span>
@Html.EditorFor(e => e.CodeGuest)

问题:

[ScaffoldColumn (false)][Display (AutoGenerateField = false)] 之间有什么区别

为什么我不能使[Display (AutoGenerateField = false)]具有效果:'调用时不生成HTML字段@Html.EditorForModel()`。

最佳答案

EditorForModel()DisplayForModel() Html 辅助方法根据 ViewData.ModelMetadata< 决定当前模型属性的渲染 View 。默认的 DataAnnotationsModelMetadataProvider 根据 DataAnnotation 属性设置 ModelMetadata 的属性。

ScaffoldColumnAttribute.Scaffold 影响 ModelMetadata 的两个属性,即“ShowForDisplay”和“ShowForEdit”。

DisplayAttribute 不会影响 ModelMetadata 的上述两个属性。

这就是为什么这两个属性在生成 Html 时没有相同的效果。

关于asp.net-mvc-3 - : [ScaffoldColumn (false)] and [Display (AutoGenerateField = false)] 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7521204/

相关文章:

asp.net-mvc - ValidationMessageFor仅具有模型和html属性-MVC 3

asp.net-mvc-3 - 覆盖 OnActionExecuting 以测试请求用户是否授权调用操作?

asp.net-mvc-3 - 如何在razor View 中设置@model.attribute?

asp.net - 来自 Microsoft.AspNet.WebApi.HelpPage 版本 4.0.30506 的运行时编译错误

javascript - ASP.NET MVC 从代码块内访问 JavaScript 变量

c# - 为自己的助手创建使用?像 Html.BeginForm

asp.net-mvc - 数据注释本地化

model-view-controller - MVC 数据注解测试

asp.net - System.Web.Webpages.Html 与 System.Web.Mvc 命名空间中的 HtmlHelper 类

如果提交有一些代码,Jquery 验证不适用于提交