【问题标题】: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)

      【讨论】:

      • Razor 自动编码。无论如何编码都不会这样做。
      猜你喜欢
      • 2015-04-24
      • 2014-12-10
      • 1970-01-01
      • 1970-01-01
      • 2017-09-08
      • 2019-10-01
      • 2017-05-17
      • 1970-01-01
      • 2021-02-04
      相关资源
      最近更新 更多