2013-05-09 25 views
6

文字列とモデル(オブジェクト)を別のアクションに送信します。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 }); 

私はオブジェクトにhSmプロパティを設定するが、それは、nullオブジェクトを送信newキーワードを使用します。

これは私のSearchアクションです:

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

答えて

13

あなたはRedirectActionでデータを送信することはできません。 301リダイレクトを実行しているため、クライアントに戻ってきたからです。

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"); 

あなたはTempDataをから再び取り出すことができた後:あなたがするために必要なもの

はTempDataをに保存している

public ActionResult Search(string culture, HotelSearchModel hotelSearchModel) 
{ 
    var obj = TempData["myObj"]; 
    hotelSearchModel = obj.hotelSearchModel; 
    culture = obj.culture; 
} 
関連する問題