ASP.NET mvc在LabelFor中显示int数

时间:2016-03-23 17:53:18

标签: c# asp.net asp.net-mvc asp.net-mvc-4

为什么它显示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))
}

3 个答案:

答案 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.LabelForLabelFor的第一个参数显示了属性的文本(或模型中的DisplayAttribute),在您的情况下为data

改为使用Html.Label,就像这样

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

或者,简单来说,使用html版本:

<label>ViewBag.id</label>