编辑器模板LabelFor - 显示值而不是名称

use*_*195 4 asp.net-mvc mvc-editor-templates razor

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

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

有任何想法吗?

视图模型

public class FavouriteThingViewModel
{
    public int FavouriteThingID { get; set; }
    public string FavouriteThingName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

编辑模板

@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>
Run Code Online (Sandbox Code Playgroud)

调节器

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;
Run Code Online (Sandbox Code Playgroud)

Col*_*con 6

尝试

@Html.LabelFor(m => m.FavouriteThingName, Model.FavouriteThingID);
Run Code Online (Sandbox Code Playgroud)

由于标签是用于属性的文本框FavouriteThingName.

更新

来自下面的评论.

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

@Html.LabelFor(m => m.FavouriteThingName, Model.FavouriteThingID.ToString());
Run Code Online (Sandbox Code Playgroud)