6

MVC アプリケーションでデータを表示するために Html.Label を使用しています。メールアドレスを表示しようとすると、正しくレンダリングされません

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

厳密に型指定されたビューを使用する (viewmodel をビューに渡し、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 に答える