Tôi có lớp mô hình cơ sở, NotificationBase và hai mô hình có nguồn gốc, GeneralNotification và ReleaseNotification.Sử dụng chế độ xem đơn cho các mô hình mvc bắt nguồn
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; }
}
Tôi đang cố sử dụng một chế độ xem chỉnh sửa để chỉnh sửa cả hai loại thông báo có nguồn gốc.
Chế độ xem này có kiểu mô hình là NotificationBase.
Vấn đề là tôi không thể nhận được các thuộc tính bổ sung của các loại dẫn xuất được hiển thị trong chế độ xem chỉnh sửa. Gửi một mô hình của kiểu cơ sở có nghĩa là tôi mất đi theo cách các thuộc tính phụ của các kiểu dẫn xuất.
Có cách nào khác không, hoặc tôi chỉ phải thực hiện các chế độ xem riêng biệt cho từng mô hình có nguồn gốc?
Cảm ơn bạn đã phản hồi nhanh, Andrei. Đó là chính xác những gì tôi đang làm, vấn đề là đây là một cái nhìn chỉnh sửa và tôi cần phải hiển thị các thuộc tính thực thể được chọn. Đối với mô hình GeneralNotification, tôi cần hiển thị giá trị của thuộc tính Message. Đó là giá trị này tôi không thể vượt qua để xem của tôi. –
@OctavianEpure, bạn chuyển mô hình đến chế độ xem như thế nào? Bạn có thể chia sẻ một mẫu mã này không? Trong lý thuyết chạy 'return View (generalNotificationInstance)' cùng với các đoạn trong câu trả lời ở trên sẽ cho bạn một kết quả mong đợi. – Andrei
đây là mô hình tôi vượt qua để xem @model NotificationBase, và trong bộ điều khiển tôi làm mô hình NotificationBase = null; công tắc (loạiId) { trường hợp (int) NotificationType.General: model = Dịch vụ.GetGeneralNotification (id); ngắt; trường hợp (int) NotificationType.Release: model = Service.GetReleaseNotification (id); ngắt; } return View (model); –