假设我有两个ViewModel,它们都完成了对象的属性。我在一个视图中获得一些属性,在另一个视图中获得其他属性。我如何将它们绑定在一个对象中? 这是预订课程
public class Booking
{
[Key]
public int ID { set; get; }
public string departFrom { set; get; }
public string departTo { set; get; }
public int memberID { get; set; }
public DateTime departureDate { set; get; }
public DateTime returnDate { set; get; }
[ForeignKey("departTo")]
public virtual Flight flight { get; set; }
[ForeignKey("memberID")]
public virtual Memeber member { get; set; }
}
现在我在ViewModel的第一个视图中,我只获取日期和departFrom和departTo位置:
public class BookingViewModel1
{
[Key]
public int ID { set; get; }
public string departFrom { set; get; }
public string departTo { set; get; }
public DateTime departureDate { set; get; }
public DateTime returnDate { set; get; }
[ForeignKey("departTo")]
public virtual Flight flight { get; set; }
}
现在我想将这些值发送到另一个View,这样我就可以输入成员属性以便在我的数据库中保存Booking。 这是另一个ViewModel:
public class BookingViewModel2
{
public int memberID { get; set; }
[ForeignKey("memeberID")]
public virtual Member member { get; set; }
}
所以在控制器中我想将它们绑定在一起,这样它们就可以指向同一个对象。
答案 0 :(得分:1)
是的你可以这样做有不同的方法,其中一个是使用
Tuple 在视图的开头
喜欢这个注意永远不要像双语那样在双引号内写出模型
@model Tuple <"OneModel","twoModel">
@html.TextBoxFor(model.item1.modelPropertie)
@html.TextBoxFor(model.item2.modelPropertie)