模型上的显示名称未显示?

时间:2012-06-20 16:00:27

标签: c# asp.net-mvc

我有一个类似于以下的模型类:

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;
using System.Web.Mvc;

[System.Runtime.Serialization.DataContract(IsReference = true)]
[System.ComponentModel.DataAnnotations.ScaffoldTable(true)]
public class TestModel
{
    [Display(Name="Schedule Name")]
    [Required]
    public string scheduleName;
}

在我的.cshtml文件中,我有:

        <li>
            @Html.LabelFor(m => m.scheduleName)
            @Html.TextBoxFor(m => m.scheduleName, Model.scheduleName)
            @Html.ValidationMessageFor(m => m.scheduleName)
        </li>

但由于某种原因,我的显示名称没有显示(标签显示'scheduleName')

我发誓我在其他类中有相同的代码,它似乎显示得很好。任何人都可以指出为什么这不起作用的原因吗?

1 个答案:

答案 0 :(得分:8)

DataAnnotationsModelMetadataProvider适用于属性。您的scheduleName应该是属于“只是”字段的属性。

[System.Runtime.Serialization.DataContract(IsReference = true)]
[System.ComponentModel.DataAnnotations.ScaffoldTable(true)]
public class TestModel
{
    [Display(Name="Schedule Name")]
    [Required]
    public string scheduleName { get; set; }
}

注意:根据C#命名约定,您的属性名称应为PascalCased。