2012-07-18 34 views
6

Tôi đang sử dụng Html.Label để hiển thị một số dữ liệu trong ứng dụng MVC của tôi. Khi tôi đang cố gắng để hiển thị địa chỉ email nó không hoàn trả đúngHtml.Label để hiển thị địa chỉ email

Model.CopyToEmail = [email protected] 
@Html.Label((string)(Model.CopyToEmail)) 

nhưng sản lượng render mà tôi thấy là

com 

thể bất cứ ai xin đề nghị làm thế nào để hiển thị sử dụng Html.Label

[email protected] 
+0

bạn có thể đăng mã xem của bạn cũng như mã điều khiển của bạn để điền vào mô hình của bạn – mreyeros

Trả lời

12

Html.Label có một trường để hiển thị thẻ <label> cho.
Nó đang đọc chuỗi của bạn như một thuộc tính lồng nhau và in tên của thuộc tính trong cùng.

Bạn chỉ muốn viết văn bản thông thường:

@Model.CopyToEmail 

Bạn cũng có thể gọi @Html.DisplayFor(m => m.CopyToEmail).

1

Sử dụng chế độ xem được nhập mạnh mẽ (chuyển chế độ xem sang chế độ xem và không sử dụng ViewBag/ViewData) là phương pháp hay và cho phép bạn sử dụng chung quá tải của người trợ giúp html. Dưới đây là ví dụ của bạn viết lại sử dụng mạnh mẽ gõ html helper

Html.LabelFor(model => model.CopyToEmail) 

Và nhãn trong html không có để hiển thị dữ liệu, nó là có nhãn bất động sản đang được chỉnh sửa. Bạn có thể sử dụng [DisplayAttribute] về sở hữu của bạn, hoặc sử dụng this overload

public static MvcHtmlString Label(
    this HtmlHelper html, 
    string expression, 
    string labelText 
) 

//

Html.LabelFor(model => model.CopyToEmail, Model.CopyToEmailLabelText) 
+1

Đó không phải là điều anh ta muốn. – SLaks

+0

@SLaks đúng, tôi đã chỉnh sửa câu trả lời của mình – archil

1

bạn có thể vui lòng xem xét các mô hình HOẶC nguồn dữ liệu của bạn vào xem để trả lại giá trị tài sản: ví dụ như, Html.Encode(Model.Email)

+0

Dao động mã hóa tự động. Và mã hóa sẽ không làm điều này anyway. – SLaks

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