我使用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; }
}
这里有什么遗漏,或者为什么我的解决方案不起作用?
答案 0 :(得分:1)
创建一个名为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
类型传递给视图,以便可以连接数据注释。如果您有自定义视图模型,则数据注释将无法实现。
在创建/编辑视图中,您必须:
@Html.EditorFor(m => m.PRICE)
在详情视图中,您必须:
@Html.DisplayFor(m => m.PRICE)
有关这方面的更多信息,请按照这个不错的分步教程进行操作: