我想知道MVC内置了什么(我现在使用的是4),这样我就可以将显示从文本字段名称更改为图像。
来自模特:
[Display(Name = "Red")]
public virtual int? RedManaCost { get; set; }
从视图:
<div class="editor-label">
@Html.LabelFor(model => model.Cards.RedManaCost)
</div>
<div class="editor-field">
@Html.TextBoxFor(model => model.Cards.RedManaCost, new {style = "width:50px"})
@Html.ValidationMessageFor(model => model.Cards.RedManaCost)
</div>
这会在我的文本框中显示“红色”一词。我想要的是红色符号的图像。我知道我可以将其硬编码到我的观点中...我希望有一种更有效的方法。谢谢!
答案 0 :(得分:0)
您可以创建一个帮助程序,传递DiplayNameFor
(“红色”,“蓝色”等),然后在帮助程序中执行Switch
颜色而不是标记。在我的示例中,我使用的是彩色DIV
而不是图片...但您可以使用图标将DIV
更改为IMG
。
类似:
@helper CardColor(string myColor){
switch(myColor.ToUpper()){
case "RED":
<div style="background-color: #FF0000; width: 20px; height:20px;"></div>
break;
case "BLUE":
<div style="background-color: #0000FF; width: 20px; height:20px;"></div>
break;
}
您可以这样使用它:
@CardColor(Html.DisplayNameFor(model => model.Cards.RedManaCost).ToHtmlString())
注意:我不确定MVC4中是否已存在DisplayNameFor
但如果不存在......您可以创建扩展程序。