Does the DataAnnotations.DisplayAttribute.Order pr

2019-02-26 09:56发布

问题:

I set values for the Order property of the Display attribute in my model metadata.

[MetadataType(typeof(OccasionMetadata))]
public partial class Occasion
{
    private class OccasionMetadata
    {
        [ScaffoldColumn(false)]
        public object Id { get; set; }

        [Required]
        [Display(Name = "Title", Order = 0)]
        public object Designation { get; set; }

        [Required]
        [DataType(DataType.MultilineText)]
        [Display(Order = 3)]
        public object Summary { get; set; }

        [Required]
        [DataType(DataType.DateTime)]
        [Display(Order = 1)]
        public object Start { get; set; }

        [Required]
        [DataType(DataType.DateTime)]
        [Display(Order = 2)]
        public object Finish { get; set; }
    }
}

I present my models in strongly-typed views using the DisplayForModel and EditorForModel methods.

<%= Html.DisplayForModel() %>

and

<%= Html.EditorForModel() %>

But, ASP.NET MVC 2 displays the fields out of order! What might I have wrong?

回答1:

.NET 4 DataAnnotations comes with a new Display attribute that has several properties including specifying the value that is used for display in the UI and a ResourceType. Unfortunately, this attribute is new and is not supported in MVC 2 RTM.

The good news is it will be supported and is currently available in the MVC Futures release.

The steps to get this working are shown below...

from Localization in ASP.NET MVC 2 using ModelMetadata by Raj Kaimal



回答2:

Brad Wilson said November 2009:

There is no support for order in MVC 2, and it's not likely to be there until MVC 3. One major reason is that DataAnnotations in .NET 4 have added ordering support, but since we rely on 3.5, we cannot do it yet.

from comment on "ASP.NET MVC 2 Templates, Part 5: Master Page Templates"