【发布时间】:2017-09-07 09:52:02
【问题描述】:
我有两个控制器 Home 和 BookReservation ,我正在尝试从 BookReservation 控制器重定向到 Home 控制器的视图,而不重定向到家庭控制器的索引 if possible 。
这是我对BookReservation 控制器的操作:
Validate_rules函数返回List<string[]>并将它们存储在tempdata中
[HttpPost]
public ActionResult Validate_Data(ReservationDetails reservation_details)
{
TempData["verification_errors"] = Validate_rules(reservation_details);//this function return List<string[]>
return RedirectToAction("Index");
}
这里是home 的视图 index.cshtml 我获取临时数据并显示它的元素:
@{
List<string[]> validate_rules = new List<string[]>();
if (TempData["verification_errors"] != null)
{
validate_rules = (List<string[]>)TempData["verification_errors"];
}
}
@foreach (var item in validate_rules)
{
<label >@item[0].ToString() @item[2].ToString()</label>
}
问题是我无法在视图标签内显示
validate_rules元素我不知道当我从BookReservation控制器重定向临时数据时问题出在哪里?
这是家庭控制器:
[HttpGet]
[ActionName("Index")]
[HandleError]
public ActionResult Index_Get(string submit)
{
bool ParamsChanged = mySessionObject.Parameters.LoadQueryParameters(Request);
if (ParamsChanged)
return RedirectToAction("Index", mySessionObject.Parameters.GetQueryParameters());
LoadHotelDetails();
GetHotelAvailability();
ViewBag.data = TempData["verification_errors"];
return View("Index",myViewModel);
}
有什么建议吗?
【问题讨论】:
-
我建议改用
Session["verification_errors"]。TempData存储在第一个和后续响应中,当返回第二个控制器上的视图时,TempData值可能已经丢失。
标签: c# arrays asp.net-mvc list razor