2011-11-07 16 views
6

Tôi có một mô hình quan điểm với một tài sản trên đó trông như thế này:How are you có nghĩa là để sử dụng Prompt, mô tả, đặt hàng khi áp dụng dữ liệu chú thích trong ASP.NET MVC 3

[Display(Name = "Some Property", Description = "This is description", Prompt = "This is prompt")] 
    [Required(ErrorMessage = RequiredFieldMessage)] 
    public string SomeProperty { get; set; } 

Nhưng điều này không dường như không hiển thị thêm bất kỳ thứ gì trong chế độ xem. Bạn có cần thực hiện thêm một số công việc không?

<div class="editor-label"> 
     @Html.LabelFor(model => model.SomeProperty) 
    </div> 
    <div class="editor-field"> 
     @Html.TextAreaFor(model => model.SomeProperty , 5, 80, null) 
     @Html.ValidationMessageFor(model => model.SomeProperty) 
    </div> 

Trả lời

14

Không phải tất cả được xây dựng trong EditorTemplates tận dụng lợi thế của tất cả các DataAnnotations, nhưng họ có cho khi bạn viết EditorTemplates riêng của bạn, bạn có thể tận dụng chúng.

Đặt hàng không thực sự áp dụng trừ khi bạn đang thực hiện DisplayForModel hoặc EditorForModel nơi hiển thị nhiều trình chỉnh sửa cho tất cả các thuộc tính trên mô hình, sau đó có thể đặt hàng Trình chỉnh sửa phù hợp.

Nếu bạn muốn tận dụng lợi thế của các siêu dữ liệu DescriptionPrompt bạn có thể viết riêng String EditorTemplate của bạn:

@model string 
@Html.TextBox("", ViewData.TemplateInfo.FormattedModelValue, new { 
    @title = ViewData.ModelMetadata.Description, 
    @placeholder = ViewData.ModelMetadata.Watermark}) 
+0

Tôi nghĩ rằng nó phải được ViewData.ModelMetadata.Watermark. Tôi đã hy vọng rằng nó sẽ có một chút năng động hơn thế. Tôi không muốn phải sử dụng EditorTemplates cho tất cả các đầu vào của mình. "trình giữ chỗ" thậm chí không được hỗ trợ trong IE. :(- Cảm ơn anyway, điều này có vẻ như câu trả lời tốt nhất – 4imble

+0

Cố định mẫu mã Vâng, nó gây phiền nhiễu, nhưng một khi bạn phát triển một tập hợp tốt của tái sử dụng chung EditorTemplates bạn chỉ có thể tái sử dụng chúng hơn và hơn. Một số người đã cố gắng này như tôi đã thấy một số nội dung trên Nuget, nhưng không chắc chắn liệu có một dự án dứt khoát hay không. –

+0

Có lẽ đã đến lúc bắt đầu một dự án GitHub mới :) –

Các vấn đề liên quan