Có cách nào để xử lý điều này mà không cần tùy chỉnh Mô hình ràng buộc?ASP.NET MVC 4 ViewModel Với giao diện trẻ em
public class MyViewModel {
public string UserId { get; set; }
public IJob Job { get; set; }
}
public interface IJob {
public long Id { get; set; }
public string CompanyName { get; set; }
}
public class FullTimeJob : IJob {
// omitted for brevity
}
public class Internship : IJob {
// omitted for brevity
}
Vấn đề tôi gặp phải là tôi gặp lỗi trong trình kết nối mô hình mặc định vì không hiểu được việc triển khai IJob nào để khởi tạo. Khi tạo MyViewModel, tôi thiết lập một thể hiện của FullTimeJob vào thuộc tính Job của nó. Tôi đoán ASP.NET không thể giữ lại các loại thực hiện?
Giải pháp thực hành tốt nhất cho việc này là gì?
Tôi muốn có thể duy trì thứ bậc đối tượng, vì vậy tôi chắc chắn muốn * tránh * đặt các trường liên quan đến công việc trực tiếp lên mô hình chế độ xem. Nếu tôi làm điều đó, ViewModel sẽ không mua cho tôi bất cứ thứ gì. –
Vâng, tôi đã làm điều đó trong một mô hình tùy chỉnh chất kết dính, nhưng tôi đã chỉ hy vọng sẽ có một câu trả lời ít tùy chỉnh. –
Bạn có thể làm cho ViewModel giống như 'class MyViewModel trong đó T: IJob, new()' và trong hàm khởi tạo bạn có thể khởi tạo Job Type 'Job = new T();' nhưng nó vẫn phụ thuộc vào kiểu Job cụ thể. –