ASP.NET MVC2:POST添加后如何重定向到GET Details / 5

时间:2011-01-12 17:30:06

标签: c# asp.net-mvc-2

我是C#,ASP.NET和MVC2的绝对初学者,这意味着我可能会遗漏一些非常基本的东西。我试图搜索它,但在这里,我没有为谷歌而不是StackOverflow提出适当的咒语,所以问题出现了:

我正在尝试使用两个操作创建一个基本控制器:

[HttpPost]
public ViewResult Create(CustomerCreateData data)
{
    CustomerRecord cr = //create customer record from input data...

    return RedirectToAction("Details");
}

public ViewResult Details(int id)
{
    CustomerRecord cr = // load customer record with specified id...
    return View(cr);
}

我的想法是在成功POST /Customer/Create后,用户将被重定向到GET /Customer/Details/42,其中42是新创建的客户记录的ID。

ASP.NET MVC2

中适当的咒语是什么?

PS - 我看过无数重定向到"Index"动作的例子,但这还不够。

2 个答案:

答案 0 :(得分:4)

您可以将数据传递给RedirectToAction方法:

return RedirectToAction("Details", new { id = cr.Id });

假设您有一个已定义的路线,例如Customer/Details/{id}或您仍然拥有默认路由{controller}/{action}/{id}

答案 1 :(得分:1)

在创建ActionResult中,创建成功后会执行这样的操作(或者例如重新执行此操作):

return RedirectToAction("Details", new { Id = cr.Id });

此代码生成重定向到Details / id / {cr.Id}。 抱歉英语不好(我是意大利语)