2013-12-09 33 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 });
确保重定向动作的参数名称应与索引动作参数名称相同

相关问题