1

我有以下声明:

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      
    }
4

1 回答 1

5

You can use TempData like

In your controller

public ActionResult Action1()
{
    ItemViewModel item = new ItemViewModel();
    TempData["item"] = item;
    return Redirect("Action2");
}

public ActionResult Action2()
{
    ItemViewModel item = (ItemViewModel)TempData["item"];

    //Your Code
}
于 2013-10-21T14:28:16.793 回答