2013-12-09 1 views
2

내가 MVc4에 새로운 오전 (다른 컨트롤러에서) 다른 하나의 작업에서 매개 변수를 전달하려고캔트 내가 매개 변수를 사전에 대한 오류를 얻을 수 있지만 내가 가진 또 다른 MVC4

public ActionResult Index(ViewModel.Example search) 
      { 

      if (search.Request != null) 
      { 
       Session["RoomTypeID"] = search.Request.RoomTypeID; 
       Session["Breakfast"] = search.Request.Breakfast; 
       Session["Currency"] = search.Request.Currency; 
      } 

      vm.listRoomRate = GetDataIndex(vm.Request); 
      _UserSession.SearchRoomRate = vm; 
      return RedirectToAction("SearchResult"); 
     } 



[HttpPost] 
     public ActionResult New(ViewModel.Rate.RateViewModel vm) 
     { 
     if (vm.NewRoomRate.Currency == null) 
      vm.NewRoomRate.Currency = "IDR"; 

     var NewData = _RoomRateService.NewRoomRate(vm.NewRoomRate.RoomTypeName, vm.NewRoomRate.Breakfast, 
            Convert.ToDateTime(vm.NewRoomRate.CheckInFrom), Convert.ToDateTime(vm.NewRoomRate.CheckInTo), vm.NewRoomRate.sun, vm.NewRoomRate.mon, vm.NewRoomRate.tue, 
            vm.NewRoomRate.wed, vm.NewRoomRate.thu, vm.NewRoomRate.fri, vm.NewRoomRate.sat, vm.NewRoomRate.Currency, vm.NewRoomRate.SingleRate, 
            vm.NewRoomRate.DoubleRate, vm.NewRoomRate.TripleRate, Convert.ToDecimal(vm.NewRoomRate.Commision), Convert.ToInt32(vm.NewRoomRate.Allotment), vm.NewRoomRate.CloseSelling, 
            vm.NewRoomRate.FreeSell); 

     if (NewData == null) 
     { 
      ModelState.AddModelError("failed", "Error has occured"); 
      return New(); 
     } 

     ViewModel.Rate.RateViewModel test = new ViewModel.Example(); 
     test.Request = new ExampleData(); 
     test.Request.RoomTypeID = Convert.ToInt32(v..exampleVM2); 
     return RedirectToAction("Index", new {search = test.Request }); 
    } 

한 행동에서 리디렉션 어떤 문제인지 전혀 알지 못합니다.

답변

1

모델 사전에 대한 오류는 "Apple"을 전달 중이고 "Orange"가 작동해야한다는 것을 나타냅니다.

효과에 행동 유형 "ViewModel.Example"의 매개 변수를 기대하고 있지만 "ExampleData"이것에

변화 마지막 라인 형식의 매개 변수를 보내는 :

return RedirectToAction("Index", new {search = test}); 
0

귀하의 테스트를 .Request 객체는 ExampleData 클래스 유형이지만 ViewModel.Rate.RateViewModel 인스턴스를 기대하는 색인 ​​액션입니다.
그래서 새 ViewModel.Example 개체에 데이터를 채우고 RedirectToAction 메서드에 전달합니다.
return RedirectToAction("Index", new {search = Your ViewModel.Rate.RateViewModel instance });
리디렉션 동작의 매개 변수 이름이 색인 작업 매개 변수 이름과 동일해야합니다.