脚手架从模型与子对象的视图

时间:2015-03-27 09:34:06

标签: asp.net-mvc asp.net-mvc-scaffolding

我想知道如何使用子对象从模型中构建视图。

例如我有

Person (string name, DateTime birthdate, Address address)
Address (string street, int postalcode)

我把这个模型搭建到一个视图中,我会有名字,生日但不是街道和邮政编码,真可惜......

是否有办法在子对象中使用scaffolding?

2 个答案:

答案 0 :(得分:0)

这可能不理想,但是我在控制器中创建了一个名为scaffold()的新方法。我用它来生成子模型的视图。然后,我将刚刚制作的代码剪切并粘贴到组合视图中。然后,如果您使用地址模型(am)作为子模型,则必须像model.am.HouseNum一样引用它。然后,您可以删除scaffold()方法。另一个想法是使用此新创建的视图并重命名它,并将其用作部分视图。我真的希望脚手架能够在模型内自动生成模型。也许是将来的版本。

答案 1 :(得分:-1)

我建议你使用ViewModel,你可以使用这样的东西:

您的ViewModel:

    public class PersonViewModel
        {       
        [Display(Name = "Name")]
        public string name { get; set; }      
        [Display(Name = "Birthdate ")]
        public DateTime birthdate { get; set; }
        [Display(Name = "street")]
        public string street{ get; set; } 
        [Display(Name = "postalcode")]
        public int postalcode{ get; set; } 

        public PersonViewModel PersonFromModel() //you can put your parameters here
        {
        PersonViewModel  Person = new PersonViewModel()
        //your needed treatment to bind your viewModel 

        return PersonViewModel;
        }

        }

在您的视图中添加:

@model YourNamespace.PersonViewModel

然后你要做的就是在你的cotroller ActionResult中返回ViewModel。