Vâng, giả sử bạn có một số thư mục Chế độ xem được gọi là Danh sách và một thư được gọi là Chi tiết - và hiển thị Mô hình trong hai phải khác nhau.
Bạn có thể tạo thư mục DisplayTemplates trong mỗi thư mục và tạo một PartialControl với cùng tên làm Mô hình của bạn và cũng mạnh mẽ nhập Mô hình của bạn.
Trong quan điểm khác nhau của bạn sau đó bạn có thể làm <%= Html.DisplayFor(your model) %>
hoặc bạn cũng có thể sử dụng thường xuyên <% Html.RenderParital("NameOfPartial", ModelX); %>
Sửa Để thử và tiếp cận vấn đề ban đầu, có lẽ điều này có thể giúp bạn một cách nào đó (tôi đăng này như một câu trả lời cho một câu hỏi khác nhau How to change [DisplayName“xxx”] in Controller?)
public class MyDisplayName : DisplayNameAttribute
{
public int DbId { get; set; }
public MyDisplayName(int DbId)
{
this.DbId = DbId;
}
public override string DisplayName
{
get
{
// Do some db-lookup to retrieve the name
return "Some string from DBLookup";
}
}
}
public class TestModel
{
[MyDisplayName(2)]
public string MyTextField { get; set; }
}
có lẽ bạn có thể viết lại tùy chỉnh thuộc tính để làm một số loại của logic-based Tên lựa chọn, và cách sử dụng các PartialView tương tự cho cả hai mô hình variati tiện ích?
Nguồn
2010-08-12 10:54:49
Tấn công nhận xét cuối cùng của tôi về câu trả lời của tôi vì dường như khó có thể thoát khỏi phương pháp tiếp cận mô hình duy nhất, chúng ta hãy xem liệu chúng tôi có thể đưa ra giải pháp hay không. Câu hỏi: Bạn có cách nào phân biệt hai Mô hình về dữ liệu trong đó không? –
Về cơ bản có. Để giữ mẫu của chúng tôi tầm thường, hãy nói rằng mô hình X có thêm một thuộc tính DataType (int) với các giá trị có thể 1 hoặc 2. – Ramunas