2013-05-09 9 views
6

Chcę wysłać ciąg i model (obiekt) do innej akcji.przekazywanie modelu i parametru z RedirectToAction

var hSM = new HotelSearchModel(); 
hSM.CityID = CityID; 
hSM.StartAt = StartAt; 
hSM.EndAt = EndAt; 
hSM.AdultCount = AdultCount; 
hSM.ChildCount = ChildCount; 

return RedirectToAction("Search", new { culture = culture, hotelSearchModel = hSM }); 

Kiedy używam słowa kluczowego new to wysyła null obiekt, chociaż ustawić obiektów hSm nieruchomości.

To mój Search działanie:

public ActionResult Search(string culture, HotelSearchModel hotelSearchModel) 
{ 
    // ... 
} 

Odpowiedz

13

Nie można wysyłać dane z RedirectAction. Dzieje się tak dlatego, że wykonujesz przekierowanie 301 i wraca ono do klienta.

Co trzeba ją zapisać w TempData:

var hSM = new HotelSearchModel(); 
hSM.CityID = CityID; 
hSM.StartAt = StartAt; 
hSM.EndAt = EndAt; 
hSM.AdultCount = AdultCount; 
hSM.ChildCount=ChildCount; 
TempData["myObj"] = new { culture = culture,hotelSearchModel = hSM }; 

return RedirectToAction("Search"); 

Po tym można odzyskać ponownie z TempData:

public ActionResult Search(string culture, HotelSearchModel hotelSearchModel) 
{ 
    var obj = TempData["myObj"]; 
    hotelSearchModel = obj.hotelSearchModel; 
    culture = obj.culture; 
} 
Powiązane problemy