2012-07-18 165 views
6

我使用Html.Label在我的MVC應用程序中顯示一些數據。當我想顯示的電子郵件地址不正確渲染Html.Label顯示電子郵件地址

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

但渲染輸出,我看到的是

com 

任何人都可以請建議如何使用Html.Label

[email protected] 
顯示
+0

你可以發佈你的視圖代碼以及你的控制器代碼,填充你的模型 – mreyeros 2012-07-18 18:25:42

回答

12

Html.Label需要一個字段來顯示<label>標籤。
它將您的字符串作爲嵌套屬性讀取,並打印最內層屬性的名稱。

你只想寫普通的文本:

@Model.CopyToEmail 

您也可以撥打@Html.DisplayFor(m => m.CopyToEmail)

1

使用強類型視圖(將視圖模型傳遞給視圖,並且不使用ViewBag/ViewData)是很好的做法,並允許您使用通用HTML幫助器的重載。這裏就是你們的榜樣使用強類型HTML輔助

Html.LabelFor(model => model.CopyToEmail) 

和標籤在HTML重寫是不是有數據顯示,它的存在標記被編輯財產。你可以在你的財產使用 [DisplayAttribute],或使用this overload

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

//

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

這不是他想要的。 – SLaks 2012-07-18 18:44:11

+0

@SLaks true,我編輯了我的答案 – archil 2012-07-18 18:46:33

1

能否請你看型號和數據源視圖返回屬性值:即像, Html.Encode(Model.Email)

+0

Razor自動編碼。無論如何編碼不會這樣做。 – SLaks 2012-07-18 18:44:02

相關問題