2012-07-18 1 views
6

を表示するために、私は私のMVCのapplilcationにいくつかのデータを表示するためにHtml.Labelを使用しています。私は、電子メール・アドレスを表示しようとしているとき、それは適切にがHtml.Labelメールアドレス

Model.CopyToEmail = [email protected] 
@Html.Label((string)(Model.CopyToEmail)) 

レンダリングされませんが、私は見レンダリングされた出力は

com 

誰がHtml.Label

[email protected] 
を使用して表示する方法を提案してもらえです
+0

あなたはあなたのビューコードだけでなく、彼が何を望んではありません、あなたのモデル – mreyeros

答えて

12

Html.Labelは、<label>タグを表示するフィールドをとります。
ネストされたプロパティとして文字列を読み込み、最も内側のプロパティの名前を出力しています。

あなただけの普通のテキストを書きたい:

@Model.CopyToEmail 

あなたはまた@Html.DisplayFor(m => m.CopyToEmail)を呼び出すことができます。

1

強く型付けされたビュー(ビューへのviewmodelsを渡し、そしてはViewBag/ViewDataをを使用していない)を使用することは良い習慣です、あなたは一般的な使用することができますhtmlヘルパーの過負荷。ここでは、HTMLに強く型付けされたHTMLヘルパー

Html.LabelFor(model => model.CopyToEmail) 

とラベルを使用して書き換えられ、あなたの例では、それがプロパティが編集されている標識することがで、データを表示することがされていないです。すなわち、のような:あなたはあなたの財産上の [DisplayAttribute]を使用するか、プロパティ値を返すためにビューにモデルやデータソースを見てみてくださいすることができthis overload

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

//

Html.LabelFor(model => model.CopyToEmail, Model.CopyToEmailLabelText) 
+1

を移入して、コントローラのコードを投稿することができます。 – SLaks

+0

@SLaks true、私の答えを編集しました – archil

1

を使用することができますHtml.Encode(Model.Email)

+0

自動的に剃刀がエンコードされます。とにかくエンコーディングはこれをしません。 – SLaks

関連する問題