我有一个简单的场景,但无法弄清楚如何设置ViewModel。我有CustomerController.cs
,Create.cshtml
和Edit.cshtml
。在这些视图中,我有字段可以获取基本的客户信息,如姓名,电话,传真,电子邮件。
我的Customer
表中有一个名为AddressId
的外键。 Address
表包含AddressId, Address1, Address2, City, State, Zip
等列。
我正在使用实体框架,所以我只需通过Customer.Address
我的表单由客户和地址字段组成,这是我的困惑所在。我是否需要所有的地址字段,我至少需要AddressId
这是外键,我不需要AddressId
,但只是Address
等。
以下是我目前在CustomerInfoViewModel
中的内容:
public string Name { get; set; }
public string Email { get; set; }
public string Phone { get; set; }
public string Fax { get; set; }
public int AddressId { get; set; }
//Address fields
public string Address1 { get; set; }
public string Address2 { get; set; }
public string City { get; set; }
[Display(Name = "State")]
public int StateId { get; set; }
[Display(Name = "Zip Code")]
public string ZipCode { get; set; }
[Display(Name = "Country")]
public int CountryId { get; set; }
我在页面上有State
和Country
下拉菜单,因此我认为我只需要State
和Country
的ID。因此,我对是否执行上述所有操作感到困惑,或者只是添加所有Address
字段而不是添加:
public Address Address { get; set; }
答案 0 :(得分:0)
你也应该这样做。最大的决定因素是您是否要将属性拉入并将属性绑定到视图模型或实体模型。所以,无论你决定:
[HttpPost]
public ActionResult Edit(CustomerInfoViewModel vm)
或者
[HttpPost]
public ActionResult Edit(Customer model)
它更多的是代码风格。