我想知道如何使用子对象从模型中构建视图。
例如我有
Person (string name, DateTime birthdate, Address address)
Address (string street, int postalcode)
我把这个模型搭建到一个视图中,我会有名字,生日但不是街道和邮政编码,真可惜......
是否有办法在子对象中使用scaffolding?
答案 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。