我正在修改现有代码。
从一个动作我使用RedirectToAction将执行控制转移到另一个动作。我还需要使用RedirectToAction传递Model。我的想法是不能直接通过将Model传递给第二个动作而不使用Session或tempData来完成。但是还是想问一下是否有一种技术可以通过RedirectToAction传递模型?我不想把Model放在Session或TempData中。
谢谢
答案 0 :(得分:1)
你可以尝试类似的东西,但它并不像一个自然的动作:
public ActionResult Index()
{
return RedirectToAction("AnotherAction", new
{
Parameter1 = Parameter1,
Parameter2 = Parameter2,
});
}
[HttpGet]
public ActionResult AnotherAction(ModelClass model)
{
//model.Parameter1
//model.Parameter2
return View(model);
}
答案 1 :(得分:0)
我希望上一个答案的代码在尝试隐式地将parameter1和parameter2的对象转换为ModelClass时抛出异常。
话虽如此,最好的方法是将实体的id传递给您的新操作,然后访问您的存储库以使用已传递的ID初始化您的模型。让我们假设您已使用user
属性初始化了UserID
。
return RedirectToAction("NextAction", new { id = user.UserID });
然后在NextAction
中使用传递的id