2012-02-20 38 views
13

Tôi sử dụng ASP.NET MVC 3. Đối với biểu mẫu của tôi, tôi căn chỉnh văn bản của nhãn ở bên phải. Ngoài ra, có một dấu hai chấm giữa nhãn và trường nhập.Văn bản nhãn Postfix với dấu hai chấm

Firstname: [   ] 
    Last: [   ] 

Tôi có thể tự động chèn dấu hai chấm này bằng CSS hoặc một số mã C# trong MVC 3 không?

Điều tốt nhất mà tôi đã đưa ra cho đến nay là sử dụng các thuộc tính [Display(Name="Firstname:")], nhưng điều này có tác dụng phụ của cũng bao gồm ruột kết này trong các tin nhắn xác nhận:

[Required] 
[Display(Name = "Firstname:")] 
[StringLength(100, ErrorMessage = "The {0} must be at least {2} character long.", MinimumLength = 1)] 
public string Firstname { get; set; } 

Các thay thế khác là sử dụng các LabelFor() phương pháp quá tải, nhưng điều này buộc tôi phải xác định văn bản nhãn hai lần (một lần trong Model và một lần vào tập tin cshtml):

<div> 
    <div class="editor-label">@Html.LabelFor(x => x.Firstname, "Firstname:")</div> 
    <div class="editor-field">@Html.TextBoxFor(x => x.Firstname)</div> 
</div> 

Bất kỳ gợi ý tốt hơn?

Trả lời

27

Thông qua CSS, bạn có thể thêm dấu hai chấm qua lớp giả after. Bạn có thể tìm thêm thông tin về lớp học giả này here.

.editor-label > label:after { 
    content: ": " 
} 

dụ làm việc: http://jsfiddle.net/fJQDZ/

Xin lưu ý rằng lớp after giả không có sẵn trong IE7.

+0

Cảm ơn, nhưng cũng có thể kiểm tra xem độ dài nội dung có lớn hơn 0 không? –

+1

Không thể thực hiện điều đó bằng cách sử dụng CSS một mình. Bạn có thể sử dụng javascript để thêm một lớp vào một phần tử nếu độ dài lớn hơn 0. Và sau đó nhắm mục tiêu các yếu tố đó bằng cách sử dụng cùng một CSS trong câu trả lời này; ví dụ. '.editor-label> .has-content: sau {...}' –

+0

Cảm ơn, điều đó sẽ hoạt động! –

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