I have a model base class, NotificationBase, and two derived models, GeneralNotification and ReleaseNotification.
public class NotificationBase { public int Id { get; set; } [Required] [StringLength(50, ErrorMessage="Title must not exceed 50 characters.")] public string Title { get; set; } [Required(ErrorMessage="Type is required.")] public int TypeId { get; set; } [Required(ErrorMessage="Importance is required.")] public int ImportanceId { get; set; } public DateTime Created {get; set; } [Required(ErrorMessage="Start date is required.")] public DateTime StartDate { get; set; } [Required(ErrorMessage="End date is required")] public DateTime EndDate { get; set; } [AllowHtml] [Required(ErrorMessage="Details are required")] public string Details { get; set; } } public class GeneralNotification : NotificationBase { [Required(ErrorMessage="Message is required.")] [StringLength(50, ErrorMessage = "Message must be maximum 50 chararacters long.")] public string Message { get; set; } } public class ReleaseNotification : NotificationBase { [Required(ErrorMessage="Version is required.")] public string Version { get; set; } }
I am trying to use one editable view to edit both types of notifications.
There is a model of type NotificationBase in this view.
The problem is that I cannot get the added properties of derived types that will be displayed as edits. Submitting a model of a base type means that I lose as additional properties of derived types become lost.
Is there a workaround, or do I just need to make separate representations for each derived model?
source share