【问题标题】:MVC3 - RedirectToAction from Edit page back to Details page with parameterMVC3 - RedirectToAction 从编辑页面返回到带有参数的详细信息页面
【发布时间】:2011-09-12 06:38:42
【问题描述】:

我有一个从类别列表到成分列表的主细节场景。

在 Edit ActionResult 我有:

if (ModelState.IsValid){
    dc.Entry(mainingredient).State = EntityState.Modified;
    dc.SaveChanges();
    int ID = ?????
    return RedirectToAction("Details", new { id = ID});
}
...

我基本上是想回到我原来的页面。 例如...从 /Ingredient/Edit/2 返回到 Ingredient/Details/2

为了让这个问题更清楚: 如何从 edit get 传递一个 id 以编辑 httppost 控制器,以便我可以在用户进行更新后将用户重定向回详细信息页面再次传递 id?

【问题讨论】:

  • 问题是什么? return RedirectToAction("Details", new { id = ID}); 是 MVC 风格 :)
  • @Samich 我忘了提到这是在控制器的 HttpPost 上。我根本不知道如何从编辑“get”控制器获取 id 到“post”。

标签: asp.net-mvc-3


【解决方案1】:

您可以在调用编辑操作时将url 查询字符串参数传递给它。这样你就可以重定向到:

public ActionResult Edit(string returnUrl)
{
    ...
    return Redirect(url);
}

或者如果您已经知道控制器和操作:

return RedirectToAction("Details", new { id = ID });

就足够了。您想要重定向回来的 ID 可以作为操作参数传递。

【讨论】:

  • 谢谢。我已经编辑了我的问题,因为我不知道如何从 Edit httppost 返回到详细信息页面。一些 viewbag 来获取 id?
  • @Par6,如果您在 GET 操作中有 id,您可以简单地将其设置为发送到视图的视图模型的属性,并在此视图内使用隐藏字段来呈现值.然后,当表单提交到 POST 操作时,id 将被发回,您将能够检索它。
猜你喜欢
  • 2012-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-01
  • 2020-06-30
  • 2016-02-21
  • 1970-01-01
  • 2020-11-29
相关资源
最近更新 更多