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 に答える