7

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

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”)

我发誓我在其他课程中也有相同的代码,而且它似乎显示得很好。谁能指出这行不通的原因?

4

1 回答 1

9

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。

于 2012-06-20T16:10:45.813 回答