.NET MVC使用自定义数据注释渲染视图

时间:2012-03-05 15:30:55

标签: asp.net-mvc data-annotations

使用.NET MVC Web应用程序进行一些操作,并对ViewModels和数据注释有疑问。

假设我有一个ViewModel:

public class MyViewModel
{
    [DisplayName("First Name")]
    public string FirstInfoName { get; set; }

    [DisplayName("First Information")]
    public string FirstInfo { get; set; }

    [DisplayName("Second Name")]
    public string SecondInfoName { get; set; }

    [DisplayName("Second Information")]
    public string SecondInfo { get; set; }

    [DisplayName("Third Name")]
    public string ThirdInfoName { get; set; }

    [DisplayName("Third Information")]
    public string ThirdInfo { get; set; }
}

当我想创建一个Edit视图时,我使用的是ViewModel:

@Html.EditorForModel()

这很好用,MVC会为我渲染文本框。但是,假设我想在视图中渲染制表符,因此ViewModel的属性将根据数据注释进行分组。 例如:

public class MyViewModel
{
    [Tab(1)]
    [DisplayName("First Name")]
    public string FirstInfoName { get; set; }

    [Tab(1)]
    [DisplayName("First Information")]
    public string FirstInfo { get; set; }

    [Tab(2)]
    [DisplayName("Second Name")]
    public string SecondInfoName { get; set; }

    [Tab(2)]
    [DisplayName("Second Information")]
    public string SecondInfo { get; set; }

    [Tab(3)]
    [DisplayName("Third Name")]
    public string ThirdInfoName { get; set; }

    [Tab(3)]
    [DisplayName("Third Information")]
    public string ThirdInfo { get; set; }
}

有可能做这样的事吗?也许使用模板?

1 个答案:

答案 0 :(得分:0)

虽然我不是说你不能这样做,但它肯定不是一个简单的解决方案。原因是属性是基于每个属性评估的。选项卡通常显示为一个组,并且没有一种好的方法可以将html更改为包含基于同一类型的多个属性的组。