【问题标题】:Html.Label to display email addressHtml.Label 显示电子邮件地址
【发布时间】:2012-07-19 02:43:10
【问题描述】:
我正在使用 Html.Label 在我的 MVC 应用程序中显示一些数据。当我尝试显示电子邮件地址时,它无法正确呈现
Model.CopyToEmail = lab@gmail.com
@Html.Label((string)(Model.CopyToEmail))
但我看到的渲染输出是
com
谁能建议如何使用 Html.Label 进行显示
lab@gmail.com
【问题讨论】:
标签:
asp.net-mvc
razor
html.label
【解决方案1】:
Html.Label 需要一个字段来显示<label> 标签。
它将您的字符串作为嵌套属性读取,并打印最内层属性的名称。
你只想写普通的文字:
@Model.CopyToEmail
您也可以拨打@Html.DisplayFor(m => m.CopyToEmail)。
【解决方案2】:
使用强类型视图(将视图模型传递给视图,不使用 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)
【解决方案3】:
您能否查看模型或您的数据源到视图以返回属性值:例如,Html.Encode(Model.Email)