我正在使用Html.Label在我的MVC applilcation中显示一些数据。当我试图显示电子邮件地址时,它无法正确呈现
Model.CopyToEmail = lab@gmail.com
@Html.Label((string)(Model.CopyToEmail))
但我看到的渲染输出是
com
有人可以建议如何使用Html.Label显示
lab@gmail.com
答案 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)