DisplayFor()
được sử dụng để hiển thị mẫu phù hợp với loại thuộc tính.
hiển thị các mẫu là các tập tin .cshtml bên /DisplayTemplates thư mục đó lần lượt là bên trong một thư mục xem (nghĩa là bất kỳ thư mục từ đình, chia sẻ hoặc thậm chí một bộ điều khiển cụ thể).
Ví dụ.
Nếu bạn đã một String.cshtml mẫu như thế này bên /Views/Shared:
@model String
@if (string.IsNullOrEmpty(Model)) {
<span>(no string)</span>
}
else {
<span>@Model</span>
}
Mỗi lần bạn gọi DisplayFor()
cho một tài sản chuỗi:
DisplayFor(model => model.MyStringProperty);
Nó làm cho mẫu phù hợp với giá trị của chuỗi. Bạn có thể cụ thể hơn và đặt /DisplayTemplates bên trong thư mục Chế độ xem cụ thể và chỉ những cuộc gọi từ những lượt xem đó bị ảnh hưởng bởi mẫu.
Trong trường hợp của bạn, bạn có thể cụ thể hơn và gọi DisplayFor()
với mẫu cụ thể.
Giả sử bạn là mẫu cho một thuộc tính cụ thể, được gọi là MyPropertyTemplate.cshtml. Bạn sẽ gọi DisplayFor()
như thế này:
DisplayFor(model => model.MyProperty, "MyPropertyTemplate");
Và họ, bên trong mẫu mà bạn có thể có bất cứ điều gì HTML thuộc tính mà bạn muốn.
@model MyProperty
<span class="orangetxt strongtxt">@MyProperty.ToString()</span>
PS: Khi không tìm thấy một mẫu Tôi đoán nó chỉ gọi model.Property.ToString()
mà không html bổ sung.
FYI: EditorFor()
, ví dụ: hoạt động theo cách tương tự nhưng nó sử dụng thư mục /EditorTemplates.
Hmm tôi có thể sai ở đây, nhưng mục đích sử dụng của bạn dựa trên câu hỏi, dường như tôi sẽ không hoạt động .. có thể bạn có thể bao gồm cách bạn đang sử dụng trình trợ giúp – Ahmad