4

下面为添加到在控制器中实例化的列表中的每个项目正确呈现标签和文本框。

我需要的是标签显示“FavouriteThingID”的值(即 1,2,3,4,5)而不是文字“FavouriteThingID”。

有任何想法吗?

视图模型

public class FavouriteThingViewModel
{
    public int FavouriteThingID { get; set; }
    public string FavouriteThingName { get; set; }
}

编辑器模板

@model _5fave.Models.FavouriteThingViewModel

<div class="control-group">
    @Html.LabelFor(m => m.FavouriteThingID, new { @class = "control-label" })
    <div class="controls">
        @Html.TextBoxFor(m => m.FavouriteThingName)
        @Html.ValidationMessageFor(m => m.FavouriteThingName, null, new { @class = "help-inline" })
    </div>
</div>

控制器

var favouriteThings = new List<FavouriteThingViewModel>();
    favouriteThings.Add(new FavouriteThingViewModel { FavouriteThingID = 1, FavouriteThingName = "Raindrops on roses" });
    favouriteThings.Add(new FavouriteThingViewModel { FavouriteThingID = 2, FavouriteThingName = "Whiskers on kittens" });
    favouriteThings.Add(new FavouriteThingViewModel { FavouriteThingID = 3, FavouriteThingName = "Bright copper kettles" });
    favouriteThings.Add(new FavouriteThingViewModel { FavouriteThingID = 4, FavouriteThingName = "Warm woolen mittens" });
    favouriteThings.Add(new FavouriteThingViewModel { FavouriteThingID = 5, FavouriteThingName = "Brown paper packages" });

    viewModel.FavouriteThings = favouriteThings;
4

3 回答 3

6

尝试

@Html.LabelFor(m => m.FavouriteThingName, Model.FavouriteThingID);

因为标签是属性的文本框FavouriteThingName

更新

从下面的评论。

如果您的财产int转换为string.

@Html.LabelFor(m => m.FavouriteThingName, Model.FavouriteThingID.ToString());
于 2013-10-16T12:00:01.897 回答
3

最好的方法是为该属性设置 Display 属性

public class FavouriteThingViewModel
{

  public int FavouriteThingID { get; set; }

  public string FavouriteThingName { get; set; }
}

在您的 cshtml 文件中

@Html.DisplayFor(m => m.FavouriteThingID)

这将显示属性的值。希望这可以帮助。

于 2013-10-16T12:06:12.927 回答
1

这是有效的:

@Html.LabelFor(m => m.FavouriteThingName, Model.FavouriteThingID.ToString());
于 2013-10-16T13:44:22.610 回答