我使用Database-First生成了一个模型类(EDMX文件),并希望使用"MetadataType“进行验证。我在这里读到了解决方案,但它们对我不起作用。
下面是我的代码:
[MetadataType(typeof(MovieEntitiesMetaData))]
public partial class MovieEntities
{
}
public class MovieEntitiesMetaData
{
[DisplayFormat(DataFormatString = "{0:c}")]
public Nullable<global::System.Decimal> PRICE { get; set; }
}这里是否遗漏了什么,或者为什么我的解决方案不起作用?
发布于 2012-10-06 12:34:19
创建一个名为MoviePartial.cs的新文件,并将以下代码放入其中:
[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视图中,您必须具备:
@Html.EditorFor(m => m.PRICE)在详细信息视图中,您必须具备:
@Html.DisplayFor(m => m.PRICE)有关这方面的更多信息,只需遵循下面这篇很好的逐步教程:
Validation with the Data Annotation Validators (C#)
https://stackoverflow.com/questions/12756721
复制相似问题