2017-05-08 63 views
1

我正在编写一个包含零件清单的ASP.NET MVC Web应用程序。正因为如此,我创建了一个类层次结构。我遇到的问题是使用Html.EditorForModel()显示最后显示继承基类的属性,当我希望它们首先显示时。EditorForModel最后显示继承的属性

下面是我在做什么的例子:

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; } 
} 

后来,当我打电话Html.EditorForModel在我看来,这是字段显示的顺序:

  • 长度
  • 宽度
  • 价格
  • 品牌

但我想它在这个顺序显示:

  • 价格
  • 品牌
  • 长度
  • 宽度

我已经试过指定[Column(Order = #)]属性,但这并没有改变任何东西。除了为每个部分创建EditorTemplate之外,我会如何去做这件事?

回答

2

使用Display属性设置顺序:

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

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