Tôi bắt đầu với MVC 4 (công cụ xem dao cạo). (Tôi tin rằng điều này có thể áp dụng cho MVC 3 và trước đó nữa.) Tôi tự hỏi nếu có bất kỳ lợi ích nào khi sử dụng chú thích dữ liệu DisplayAttribute trong một khung nhìn so với chỉ viết một chuỗi trực tiếp trong HTML. Ví dụ, nếu tôi đã có mô hình sau:MVC 4 Chú thích dữ liệu "Hiển thị" Thuộc tính
public class Thing
{
public string WildAndCrazyProperty { get; set; }
}
... sẽ có được bất kỳ lợi ích trong việc chú thích bất động sản như:
[Display(Name = "Wild and Crazy")]
public string WildAndCrazyProperty { get; set; }
... và có đánh dấu của tôi là:
<html>
<body>
<div>@Html.DisplayNameFor(modelItem => modelItem.WildAndCrazyProperty)</div>
<div>@Html.DisplayFor(modelItem => modelItem.WildAndCrazyProperty)</div>
</body>
</html>
... so với không có chú thích, và thực hiện:
<html>
<body>
<div>Wild and Crazy</div>
<div>@Html.DisplayFor(modelItem => modelItem.WildAndCrazyProperty)</div>
</body>
</html>
Lý do tôi chưa đề cập đến Html.LabelFor
trong trường hợp này là do dữ liệu của thuộc tính đang được hiển thị dưới dạng tĩnh (tức là không thể chỉnh sửa) trên trang. Dữ liệu sẽ không bao giờ được chỉnh sửa trên trang này, vì vậy tôi không cần sử dụng Html.TextBoxFor
trong số <div> thứ hai và sau đó sử dụng Html.LabelFor
để liên kết nhãn phù hợp với hộp văn bản đó.
Và đó là cách tôi đang nghiêng. Có vẻ như bạn sẽ muốn một cái gì đó thực sự là một loại màn hình hiển thị trong phần mã thực hiện hiển thị thực tế. Phải biên dịch lại dự án chỉ để thay đổi một hoặc hai nhóm có vẻ không cần thiết. –
Tôi hoàn toàn đồng ý về điểm biên dịch lại. Tôi cảm thấy ngay cả khi bạn phải sử dụng mô hình trong nhiều chế độ xem, những ưu điểm của việc đưa dữ liệu đó vào một thuộc tính không vượt quá tầm quan trọng. – eouw0o83hf
Vì vậy, tôi thực sự thích khái niệm đằng sau câu trả lời này, nhưng nó không làm việc cho tôi. Lớp kế thừa của tôi không ghi đè thuộc tính 'Hiển thị' của lớp cơ sở. Có lý do gì không? – Kehlan