为什么它显示data
,而不是100
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 :(得分:2)
如果要显示填充到ViewBag中的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))
}
或者:
@Html.Label("id", (int)ViewBag.id)
答案 1 :(得分:2)
您可以始终执行以下操作,而不是LabelFor:
<label>@Html.Raw(ViewBag.Id)</label>
LabelFor实际上是为模型属性保留的,因为模型能够传递数据类型和数据注释,如电子邮件,密码。
通过更原始的HTML方式,您可以像任何其他HTML元素一样适当地设置样式。
答案 2 :(得分:1)
如果您想在标签文字上显示100
,那么为什么要使用Html.LabelFor
? LabelFor
的第一个参数显示了属性的文本(或模型中的DisplayAttribute
),在您的情况下为data
。
改为使用Html.Label
,就像这样
@Html.Label("id", (int)ViewBag.id)
或者,简单来说,使用html版本:
<label>ViewBag.id</label>