Sea*_*ron 3 asp.net-mvc tempdata asp.net-mvc-3 asp.net-mvc-4
我从多个页面调用控制器,并使用returnUrl参数返回正确的调用位置:
public ActionResult EmailOrder(int id, string returnUrl)
{
var message = "The order has been emailed";
if (!string.IsNullOrEmpty(returnUrl)) return Redirect(returnUrl);
return RedirectToAction("Details", new { id, message });
}
Run Code Online (Sandbox Code Playgroud)
使用时如何将附加信息传递回视图Redirect(url)?在上面的示例中,我希望能够在有值message时传回。returnUrl
如果您要重定向到另一个操作方法,并且想要传递可在新操作方法中访问的数据,则应使用 ASP.MVC 控制器 TempData 属性。您可以按如下方式使用它:
[HttpPost]
public ActionResult MyActionMethod(Order order)
{
// write your logic here to save the Order
TempData["message"] = "here is some message";
return RedirectToAction("Index");
}
Run Code Online (Sandbox Code Playgroud)
TempData 成员中的数据将在重定向过程中保留。它将在重定向页面中访问,然后将被删除。一旦您读取了 TempData 中的条目,它将被标记为删除。
public ActionResult RedirectedMethod()
{
//Retrieve data from TempData. It will then be marked for deletion
var data = TempData["message"].ToString();
}
Run Code Online (Sandbox Code Playgroud)
如果你想获取一个值而不将其标记为删除,可以使用“Peek”方法:
var data = TempData.Peek("message")
Run Code Online (Sandbox Code Playgroud)
此外,您还可以使用“Keep”方法手动保留将被删除的值:
TempData.Keep("message")
Run Code Online (Sandbox Code Playgroud)
TempData 的类型为TempDataDictionary。
请注意,TempData 在后台使用 ASP.Net 会话状态,因此如果您使用 TempData,则必须打开会话状态。
有关 TempData 的更多信息,请参阅此处。
| 归档时间: |
|
| 查看次数: |
2561 次 |
| 最近记录: |