Tôi có một kiểu xem được chia sẻ bởi hai trang khác nhau. Các mô hình xem khá giống với ngoại lệ của một thuộc tính: Địa chỉ. Mô hình khung nhìn có chứa các trường tên và vị trí. Tuy nhiên, nhãn địa chỉ của khách hàng nên đọc: Địa chỉ khách hàng và nhãn địa chỉ của nhân viên nên đọc: Địa chỉ của nhân viên. Họ cũng sẽ hiển thị các thông báo lỗi khác nhau.Các thuộc tính ghi đè của Mô hình Xem cơ bản trong ASP.NET MVC 3
Dưới đây là một phiên bản đơn giản của những gì tôi đang cố gắng để hoàn thành:
public class BaseLocation
{
[Display(Name="Your Name")]
public string Name {get;set;}
public virtual string Address {get;set;}
}
public class CustomerLocation : BaseLocation
{
[Display(Name="Customer Address")]
public override string Address {get;set;}
}
public class EmployeeLocation : BaseLocation
{
[Display(Name="Employee Address")]
public override string Address {get;set;}
}
Sau đó, tôi đã tạo ra một phần cho các vị trí cơ sở, như vậy:
@model BaseLocation
***ASP.NET MVC Helpers here: labels, text, validation, etc.
Cuối cùng, trong khách hàng và Trang nhân viên, tôi sẽ gọi một phần và gửi cho nó loại được phân loại.
Customer.cshtml
@model CustomerLocation
@Html.Render("_BaseLocation", Model)
Employee.cshtml
@model EmployeeLocation
@Html.Render("_BaseLocation", Model)
Kết quả là tôi sẽ không thấy thuộc tính dữ liệu cho loại cụ thể. Ví dụ: trong trang khách hàng, tôi sẽ nhận được nhãn "Địa chỉ" thay vì "Địa chỉ khách hàng".
Tôi không muốn tạo hai phần có cùng dữ liệu cho từng loại cụ thể, đơn giản vì một thuộc tính trong mô hình chế độ xem được chia sẻ phải có nhãn và thông báo lỗi khác. Cách tốt nhất để giải quyết vấn đề này là gì? Cảm ơn.
Hãy thử tạo bản tóm tắt cơ bản, xem liệu nó có thay đổi gì không. – gdoron
@gdoron, nó sẽ không thay đổi gì cả. –
@DarinDimitrov, Vì vậy, cách duy nhất tôi có thể nghĩ đến là viết 'HtmlHelper' của riêng bạn làm công việc đúng. – gdoron