首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么MetadataType不先在数据库中进行验证?

为什么MetadataType不先在数据库中进行验证?
EN

Stack Overflow用户
提问于 2012-10-06 12:26:10
回答 1查看 1.8K关注 0票数 3

我使用Database-First生成了一个模型类(EDMX文件),并希望使用"MetadataType“进行验证。我在这里读到了解决方案,但它们对我不起作用。

下面是我的代码:

代码语言:javascript
复制
[MetadataType(typeof(MovieEntitiesMetaData))]
public partial class MovieEntities
{        
}

public class MovieEntitiesMetaData
{
    [DisplayFormat(DataFormatString = "{0:c}")]
    public Nullable<global::System.Decimal> PRICE { get; set; }
}

这里是否遗漏了什么,或者为什么我的解决方案不起作用?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-06 12:34:19

创建一个名为MoviePartial.cs的新文件,并将以下代码放入其中:

代码语言:javascript
复制
[MetadataType(typeof(MovieMetaData))]
public partial class Movie
{    
    internal sealed class MovieMetaData
    {
        [DisplayFormat(DataFormatString = "{0:F2}", ApplyFormatInEditMode = true)]
        [Required(ErrorMessage = "Price is required")]
        public decimal? PRICE { get; set; }
    }
}

您还需要将Movie类型传递给视图,以便可以连接数据注释。如果您有一个自定义视图模型,那么数据注释将不起作用。

在Create/Edit视图中,您必须具备:

代码语言:javascript
复制
@Html.EditorFor(m => m.PRICE)

在详细信息视图中,您必须具备:

代码语言:javascript
复制
@Html.DisplayFor(m => m.PRICE)

有关这方面的更多信息,只需遵循下面这篇很好的逐步教程:

Validation with the Data Annotation Validators (C#)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12756721

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档