2016-03-23 6 views
0

におけるMVC表示int型の数、それはdataを表示していますなぜ、ではなく値100ASP.NET LabelFor

public ActionResult Index() 
{ 
    ViewBag.id = 100; 
    return View(); 
} 

Index.cshtml

@model TestForm.Models.Data 
@{ 
    ViewBag.Title = "Index"; 
} 

<h2>Index</h2> 

@using(@Html.BeginForm()) 
{ 
    @Html.LabelFor(model=>model.data,((int)@ViewBag.id)) 
} 
+0

あなたの価値がViewBagであるといないモデルは、あなたがする必要がありますビュー(新しいデータ(){データ= 100})を返します。 – InitLipton

答えて

1

あなたが100を表示したい場合は '@' を削除あなたがViewBagに詰め込んだもの

視白:

ViewBag.id = "100"; 

HTML:

@model TestForm.Models.Data 
@{ 
    ViewBag.Title = "Index"; 
} 

<h2>Index</h2> 

@using(@Html.BeginForm()) 
{ 
    @Html.LabelFor(model=>model.data,((string /*LabelFor produces string lableText */)ViewBag.id)) 
} 

または:

<label>@Html.Raw(ViewBag.Id)</label> 

LabelForが本当に以来、モデルの特性のために予約されています。その代わりLabelForの

@Html.Label("id", (int)ViewBag.id) 
2

は、あなたは常に次の操作を行うことができモデルは、電子メール、パスワードなどのデータ型とデータ注釈を渡すことができます。

生のHTML方法を使用すると、他のHTML要素と同様にスタイルを設定できます。

1

100をラベルテキストに表示する場合は、なぜHtml.LabelForを使用していますか? LabelForの最初のパラメータは、プロパティのテキスト(またはモデル内にDisplayAttribute)を表示します。この場合、dataです。

使用Html.Label代わりに、HTMLのバージョンを使用して、単純な方法でこの

@Html.Label("id", (int)ViewBag.id) 

か、のような:

<label>ViewBag.id</label> 
関連する問題