Asp.net mvc 编辑器模板LabelFor-显示值而不是名称

Asp.net mvc 编辑器模板LabelFor-显示值而不是名称,asp.net-mvc,razor,mvc-editor-templates,Asp.net Mvc,Razor,Mvc Editor Templates,下面正确呈现添加到控制器中实例化列表中的每个项目的标签和文本框 我需要的是标签显示“FavoriteThingId”(即1,2,3,4,5)的值,而不是文字“FavoriteThingId” 有什么想法吗 视图模型 public class FavouriteThingViewModel { public int FavouriteThingID { get; set; } public string FavouriteThingName { get; set; } } 编辑器

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

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

有什么想法吗

视图模型

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>
@model\u 5fave.Models.favoriteThingViewModel
@LabelFor(m=>m.FavoriteThingId,新的{@class=“control label”})
@Html.TextBoxFor(m=>m.FavoriteThingName)
@Html.ValidationMessageFor(m=>m.FavoriteThingName,null,新的{@class=“help inline”})
控制器

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;
var-favoriteethings=newlist();
添加(新的FavoriteThingViewModel{FavoriteThingId=1,FavoriteThingName=“玫瑰上的雨滴”});
添加(新的FavoriteThingViewModel{FavoriteThingId=2,FavoriteThingName=“小猫的胡须”});
添加(新的FavoriteThingViewModel{FavoriteThingId=3,FavoriteThingName=“亮铜壶”});
添加(新的FavoriteThingViewModel{FavoriteThingId=4,FavoriteThingName=“保暖羊毛手套”});
添加(新的FavoriteThingViewModel{FavoriteThingId=5,FavoriteThingName=“Brown paper packages”});
viewModel.FavoriteThings=FavoriteThings;
试试看

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

更新 从下面的评论中

如果属性是
int
转换为
string

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

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

public class FavouriteThingViewModel
{

  public int FavouriteThingID { get; set; }

  public string FavouriteThingName { get; set; }
}
在cshtml文件中

@Html.DisplayFor(m => m.FavouriteThingID)
这将显示属性的值。希望这有帮助。

这很有效:

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

这看起来应该行得通,但实际上不行。LabelFor似乎呈现文字“FavoriteThingName”。标签应显示
FavoriteThingId
的值,并且在
for
中应包含类似
FavoriteThingName
的内容。如果您查看文本框的
id
,它应该是相同的,这是正确的。谢谢Colin,这就是正在呈现的内容:FavoriteThingName似乎第二个重载被忽略。请尝试使用.ToString()谢谢Colin。我在看到你的回答之前就知道了。谢谢你,但这不是问题所在。请使用问题的编辑链接添加其他信息。“发布答案”按钮只能用于问题的完整答案。这很公平,但为什么上面的答案不是完整的?这是我在查看答案等时自动做出的评论。我建议编辑您的问题,将其包括在内。而且,看起来科林·培根已经说过同样的话了。所以,简单地投票支持他的答案并接受它。这表明你发现了一些有用的东西,我刚刚投了赞成票并接受了科林的答案。但我在他发帖之前就想出来了——这就是为什么我也加了一个答案。对不起,我没有看时间戳
@Html.LabelFor(m => m.FavouriteThingName, Model.FavouriteThingID.ToString());