Html.Label显示电子邮件地址

时间:2012-07-18 18:06:38

标签: asp.net-mvc razor html.label

我正在使用Html.Label在我的MVC applilcation中显示一些数据。当我试图显示电子邮件地址时,它无法正确呈现

Model.CopyToEmail = lab@gmail.com
@Html.Label((string)(Model.CopyToEmail))

但我看到的渲染输出是

com

有人可以建议如何使用Html.Label显示

lab@gmail.com 

3 个答案:

答案 0 :(得分:13)

Html.Label需要一个字段来显示<label>标记 它将您的字符串作为嵌套属性读取,并打印最内层属性的名称。

你只想写普通文字:

@Model.CopyToEmail

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

答案 1 :(得分: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)

答案 2 :(得分:1)

您能否查看模型或您的数据源到视图以返回属性值:例如,Html.Encode(Model.Email)