0

私は 2 つのビュー モデル、FacilityInRoomViewModel と NewRoomViewModel を持っていますが、サービスを使用してコントローラーで FacilityInRoomViewModel から NewRoomViewModel に値を渡すにはどうすればよいですか??

これは私のビューモデルです

namespace XNet.WebUI.Hotel.ViewModel
{
    public class FacilityInRoomViewModel
    {
        public int RoomFacilityID { get; set; }
        public string RoomFacilityName { get; set; }
        public bool RoomFacilityAvailable { get; set; }
    }
    public class ListFacilityInRoom
    {
        public List<FacilityInRoomViewModel> listRoomFacility { get; set; }
    }
}


namespace XNet.WebUI.Hotel.ViewModel
{
    public class NewRoomViewModel
    {
        public int HotelID { get; set; }

        [Required(ErrorMessage = "*")]
        public string RoomTypeName { get; set; }

        [Required(ErrorMessage = "*")]
        public string RoomTypeDescription { get; set; }

        public List<FacilityInRoomViewModel> facilityinRoom { get; set; }
    }

}

私のviewModelBuilderクラス

namespace XNet.WebUI.Hotel.ViewModel.Builder
{
    public class FacilityInRoomBuilder
    {
        public static ListFacilityInRoom Build(List<RoomFacility> roomFacility)
        {
            ListFacilityInRoom model = new ListFacilityInRoom();
            model.listRoomFacility = new List<FacilityInRoomViewModel>();

            foreach (var roomFacilities in roomFacility)
            {
                FacilityInRoomViewModel t = new FacilityInRoomViewModel
                {
                    RoomFacilityID = roomFacilities.RoomFacilityID,
                    RoomFacilityName = roomFacilities.RoomFacilityName,
                    RoomFacilityAvailable = roomFacilities.IsActive
                };
                model.listRoomFacility.Add(t);
            }
            return model;
        }

        public static NewRoomViewModel Build2(List<FacilityInRoomViewModel> list)
        {
            NewRoomViewModel model = new NewRoomViewModel();
            model.facilityinRoom = list;

            return model;
        }
    }
}

私のサービス

public List<RoomFacility> showNewRooms()
        {
            List<RoomFacility> showNewRoomViewModel = _RoomFacilityRepository.AsQueryable().ToList();
                return showNewRoomViewModel;
        }

私のコントローラー

    public ActionResult NewRoom()
            {
                var showNewRoomViewModel = _RoomTypeService.showNewRooms();
                ListFacilityInRoom model = FacilityInRoomBuilder.Build(showNewRoomViewModel);
return View(model);

            }
4

1 に答える 1

0

あなたが持っているものを見ると、FacilityInRoomViewModel を

public static NewRoomViewModel Build2(List<FacilityInRoomViewModel> list)
    {
        NewRoomViewModel model = new NewRoomViewModel();
        model.facilityinRoom = list;

        return model;
    }

ただし、 NewRoomViewModel では、 List のオブジェクトのみが必要です

私はあなたの中で考える

 public ActionResult NewRoom()
 {
     var showNewRoomViewModel = RoomTypeService.showNewRooms();
     ListFacilityInRoom model = FacilityInRoomBuilder.Build(showNewRoomViewModel);
     var newroomviewmodel=FacilityInRoomBuilder.Build2(showNewRoomViewModel.listRoomFacility);
     return View(newroomviewmodel);
  }
于 2013-07-10T02:28:45.270 に答える