9
Używam Atrybut MetaDataType w mojej klasie modelu domeny. Powinien przenieść informacje o atrybutach z przywoływanej klasy do klasy, dla której ustawiono atrybut MetadataType. Ale nie działa tak jak w reklamie. Co powoduje problem tutaj?Atrybut ASP.NET Core MetaDataType nie działa
[MetadataType(typeof(ComponentModelMetaData))]
public partial class Component
{
public int Id { get; set; }
public string Name { get; set; }
public ICollection<Repo> Repos { get; set; }
public string Description { get; set; }
}
public class ComponentModelMetaData
{
[Required(ErrorMessage = "Name is required.")]
[StringLength(30, MinimumLength = 3, ErrorMessage = "Name length should be more than 3 symbols.")]
public string Name { get; set; }
public ICollection<Repo> Repos { get; set; }
[Required(ErrorMessage = "Description is required.")]
public string Description { get; set; }
}
najszczersze podziękowania dla F inding Microsoft.AspNetCore.Mvc.ModelMetadataTypeAttribute dla .NET Core 1.0 ... inna nazwa, inna przestrzeń nazw ... nie trudno jest znaleźć. W każdym razie jest to poprawna odpowiedź, ponieważ częściowy komponent klasy wydaje się być deklaracją modelu. Wolę używać klasy częściowej o tej samej nazwie i tej samej logicznej przestrzeni nazw, co model do zastosowania do sprawdzania poprawności i adnotacji metadanych do modelu. W ten sposób, jeśli zregeneruję model z bazy danych, nie stracę swoich edycji. – Gopher