2017-05-08 7 views
1

Ich schreibe eine ASP.NET MVC Web App, die eine Teileliste enthält. Aus diesem Grund habe ich eine Klassenhierarchie erstellt. Das Problem, das ich habe, ist, dass die Verwendung Html.EditorForModel() die Eigenschaften aus der geerbten Basisklasse zuletzt anzeigt, wenn ich möchte, dass sie zuerst angezeigt werden.EditorForModel zeigt vererbte Eigenschaften zuletzt

Hier ist ein Beispiel dafür, was ich tue:

Part.cs

public class Part 
{ 
    [Key] 
    [HiddenInput(DiplayValue = false)] 
    public Nullable<int> ID { get; set; } 

    [Required] 
    public int Price { get; set; } 

    [Required] 
    public string Brand { get; set; } 
} 

Screw.cs

public class Screw : Part 
{ 
    public int Length { get; set; } 
    public int Width { get; set; } 
} 

Dann, wenn ich Html.EditorForModel in meiner Ansicht aufrufen Dies ist die Reihenfolge, in der die Felder angezeigt werden:

  • Länge
  • Breite
  • Preis
  • Marke

Aber ich will es in dieser Reihenfolge zeigen:

  • Preis
  • Marke
  • Länge
  • Breite

Ich habe versucht, das [Column(Order = #)] Attribut spezifiziert, aber das hat nichts ändern. Abgesehen von der Erstellung eines Editor-Templates für jeden Part, wie würde ich dies tun?

Antwort

2

Verwenden Display Attribute zu setzen, um:

[Display(Order = 2)] 
public int Id { get; set; } 

[Display(Order = 1)] 
public string Name { get; set; } 
Verwandte Themen