6

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

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

但我看到的渲染输出是

com

谁能建议如何使用 Html.Label 显示

lab@gmail.com 
4

3 回答 3

13

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

您只想编写普通文本:

@Model.CopyToEmail

您也可以调用@Html.DisplayFor(m => m.CopyToEmail).

于 2012-07-18T18:43:10.927 回答
1

使用强类型视图(将视图模型传递给视图,而不是使用 ViewBag/ViewData)是一种很好的做法,并且允许您使用 html 助手的通用重载。这是您使用强类型 html 帮助程序重写的示例

Html.LabelFor(model => model.CopyToEmail)

html中的标签不是用来显示数据的,它是用来编辑标签属性的。您可以在您的财产上使用[DisplayAttribute] ,或使用此重载

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

//

Html.LabelFor(model => model.CopyToEmail, Model.CopyToEmailLabelText)
于 2012-07-18T18:42:09.257 回答
1

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

于 2012-07-18T18:42:58.873 回答