DisplayNameFor标记更改文本

时间:2016-08-01 21:24:30

标签: asp.net-mvc asp.net-mvc-5

我在实体A的详细信息视图中有以下代码

<dt>
    @Html.DisplayNameFor(model => model.User1.UserName)
</dt>
<dd>
    @Html.DisplayFor(model => model.User1.UserName)
</dd>

我想更改详细信息视图中显示的标题 它显示UserName我希望它被提交 它不能重载因为DisplayName For donot有任何带有两个参数的重载函数 @Html.DisplayFor(model => model.User1.UserName,"Submitted By")无效 任何帮助

这是我的错误模型,其中我有分配和提交的字段与用户模型相关,因此我遇到了问题&#34; UserName&#34;显示在列名称的位置,它应显示名称为&#34;分配给&#34;和&#34;提交者&#34;

    public partial class Bug
{
    public int ID { get; set; }
    public string Name { get; set; }
    public string Description { get; set; }
    public string Priority { get; set; }
    public string Severity { get; set; }
    public string Status { get; set; }
    public int AssignedTo { get; set; }
    public int SubmittedBy { get; set; }
    public int ComponentID { get; set; }
    public int ProjectID { get; set; }
    public System.DateTime DueDate { get; set; }
    public Nullable<int> BugNumber { get; set; }
    public string NormalFlow { get; set; }
    public System.DateTime CreationDate { get; set; }

    public virtual Component Component { get; set; }
    public virtual Project Project { get; set; }
    public virtual User User { get; set; }
    public virtual User User1 { get; set; }
}

3 个答案:

答案 0 :(得分:5)

您可以通过模型上的 [显示] 属性控制显示的文字。在您的情况下,您希望在User1的基础模型上设置属性:

public class User
{
   [Display(Name = "Submitted By")]
   public string UserName;
}

有关DisplayAttribute类的更多详细信息,请参阅https://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.displayattribute.name%28v=vs.110%29.aspx

答案 1 :(得分:4)

只要您想更改标签的显示文字,无需更改您的型号.. 只需编辑您的Razor View:

<dt>
    @Html.DisplayName("Submitted By")
</dt>
<dd>
    @Html.DisplayFor(model => model.User1.UserName)
</dd>

<dt>
        Submitted By
 </dt>
 <dd>
    @Html.DisplayFor(model => model.User1.UserName)
 </dd>

答案 2 :(得分:0)

这是一个为我工作的。

@Html.LabelFor(model => model.category_type_id, "Category Type", htmlAttributes: new { @class = "control-label col-md-2" })