我很好奇这是如何工作的。在MVC中,您可以调用View()并传递模型作为参数,但RedirectToAction(至少其中之一)需要一个“routeValues”对象,这似乎是最接近的匹配。
如果您的模型通过此参数传递,那么该模型类型是否可在随后的操作方法中使用?或者是否存在某些注意事项可能会阻止某些情况下的准确翻译?
如果您的模型通过此参数传递,那么该模型类型是否可在随后的操作方法中使用?或者是否存在某些注意事项可能会阻止某些情况下的准确翻译?
ASP.NET MVC TempData字典用于在控制器操作之间共享数据。TempData的值持续到读取它或当前用户的会话超时为止。
默认情况下,TempData使用Session来保持信息,但是,与MVC的许多其他部分一样,这是一个可扩展性点,您可以插入基于Cookie的提供程序(如果您喜欢)。
您不能直接传递一个模型对象,但是您可以传递单个属性,这些属性将映射到您重定向到的操作中的模型。
这通过使用属性构建要重定向的 URL 和接收操作中的模型绑定器来实现。
Redirect...
方法会导致客户端和服务器之间的往返,因此模型将不可用。
我认为这就是你想要的:
将您的模型保存在Tempdata中
RequestModel rq = new RequestModel()
....为您的模型分配一些内容..
TempData["request"] = rq;
return Redirect("RequestAcknowledgement");
现在为您重定向到的视图创建一个ActionResult,并将您的TempData传回模型。然后将该模型返回给视图。
public ActionResult RequestAcknowledgement()
{
RequestsModel request = (RequestsModel)TempData["request"];
return View(request);
}
@model
的对象,它可用于视图并从控制器传递给视图。我知道你可以使用TempData或ViewBag将模型放入临时存储中,同时重定向;是否有人知道为什么在重定向时不能将模型作为参数传递?View()方法有一个重载,允许您...想知道为什么在重定向中不能做同样的事情。 - larryq