我知道这个问题已经被问过很多次并且得到了答案,但是没有一个解决方案对我有效。
这是我的视图模型:
public class FlightSearchResults
{
public FlightSearch SearchModel { get; set; }
public List<vwLowFareSearchResults> SearchResults { get; set; }
public string TestString { get; set; }
public DateTime TestDate { get; set; }
}
我正在使用RedirectToAction
,代码如下:
FlightSearchResults flightSearchResults = new FlightSearchResults();
flightSearchResults.SearchModel = model;
flightSearchResults.SearchResults = flights;
flightSearchResults.TestDate = DateTime.Now.AddDays(-2);
flightSearchResults.TestString = "Just Testing . . .";
return RedirectToAction("index", "flights", flightSearchResults);
在我的航班索引中,我只获取了这个 List<vwLowFareSearchResults> SearchResults
属性,其他属性都没有被赋值。我尝试了一些来自StackOverFlow上的线程的几个变化,例如:
return RedirectToAction("index", "flights", new { SearchResults = flights, SearchModel = model });
return RedirectToAction("Result", "Dialog", new RouteValueDictionary(flightSearchResults));
我可以这样返回视图:
return View("~/Views/Flights/Index.cshtml", flightSearchResults);
但是这并不是一个很好的解决方案,因为URL没有更新。我正在修改一些较旧的项目,使用Session和Viewbag会导致混乱。
我需要简化上一个代码中视图和控制器之间的数据通信模式。有没有可能在简单的RedirectToAction中不使用ViewData或Viewbag来实现这一点。
如果能给予任何帮助来达成这个目标,那将非常棒,因为我对MVC还很新手。