2013-05-09 37 views
6

Tôi muốn gửi một chuỗi và một mô hình (đối tượng) đến một hành động khác.chuyển mô hình và tham số với 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 }); 

Khi tôi sử dụng từ khóa new nó sẽ gửi null đối tượng, mặc dù tôi thiết lập các đối tượng hSm tài sản.

Đây là Search hành động của tôi:

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

Trả lời

13

Bạn không thể gửi dữ liệu với một RedirectAction. Đó là vì bạn đang thực hiện chuyển hướng 301 và quay lại máy khách.

Những gì bạn cần là lưu nó trong 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"); 

Sau đó bạn có thể lấy lại từ TempData:

public ActionResult Search(string culture, HotelSearchModel hotelSearchModel) 
{ 
    var obj = TempData["myObj"]; 
    hotelSearchModel = obj.hotelSearchModel; 
    culture = obj.culture; 
} 
Các vấn đề liên quan