EditorForModel 最后显示继承的属性
EditorForModel displays inherited properties last
我正在编写一个包含部件列表的 ASP.NET MVC 网络应用程序。因此,我创建了一个 class 层次结构。我遇到的问题是使用 Html.EditorForModel()
显示继承基础 class 的属性,但我希望它们首先显示。
这是我正在做的一个例子:
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 之外,我将如何做呢?
使用Display
属性设置顺序:
[Display(Order = 2)]
public int Id { get; set; }
[Display(Order = 1)]
public string Name { get; set; }
我正在编写一个包含部件列表的 ASP.NET MVC 网络应用程序。因此,我创建了一个 class 层次结构。我遇到的问题是使用 Html.EditorForModel()
显示继承基础 class 的属性,但我希望它们首先显示。
这是我正在做的一个例子:
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 之外,我将如何做呢?
使用Display
属性设置顺序:
[Display(Order = 2)]
public int Id { get; set; }
[Display(Order = 1)]
public string Name { get; set; }