我有以下声明:
return Redirect(this.Request.UrlReferrer.AbsolutePath);
这会重定向到调用者视图。它工作正常,但现在我需要在重定向时返回一个视图模型,类似这样(这是错误的):
return Redirect(this.Request.UrlReferrer.AbsolutePath(item));
那我怎么能实现这个目标呢?
我想这样做,因为我有一个jqrid,其中一个列提供了一些操作,编辑和删除行。因此,如果用户点击编辑,我将从传递给数据库的id中检索一些数据。然后,一旦我获得了这些数据,我就会填充视图模型以更新视图中的一些文本框,因此我需要在重定向时传递视图模型。
在控制器中的代码下面:
public ActionResult Edit(int id)
{
ItemViewModel item = new ItemViewModel();
using (DBContext context = new DBContext())
{
Items itemToModify = context.Items.Single(i=> i.ItemId == id);
item.Desc = itemToModify.Desc;
item.Name = itemToModify.Name;
}
return Redirect(this.Request.UrlReferrer.AbsolutePath, item); <-- how to do this
}
答案 0 :(得分:5)
您可以使用TempData
之类的
在您的控制器中
public ActionResult Action1()
{
ItemViewModel item = new ItemViewModel();
TempData["item"] = item;
return Redirect("Action2");
}
public ActionResult Action2()
{
ItemViewModel item = (ItemViewModel)TempData["item"];
//Your Code
}