Отображаемое имя на модели не отображается?

у меня есть класс модели, похожие на следующие:

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 ответов


на 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.