RedirectToAction in ASP.Net MVC

本文关键字:MVC Net ASP in RedirectToAction | 更新日期: 2023-09-27 17:50:17

我使用的是ASP.net MVC 4
我有一个控制器如下:

public class PersonController : Controller
{
    public ActionResult Edit(int id)
    {
        //todo something.........
    }
    [HttpPost]
    public ActionResult Edit(PersonModel model)
    {
        //todo something.........
        return RedirectToAction("Edit", model.Id); // => Okay
    }
    public ActionResult Create()
    {
        //todo something............
    }
    [HttpPost]
    public ActionResult Create(PersonModel model)
    {
        //todo something........
        return RedirectToAction("Edit", new { id = model.Id } ); //=>Okay
        //return RedirectToAction("Edit", model.Id); // => exception???, but Edit Action is Okay**
    }
}

RedirectToAction in ASP.Net MVC

我认为你得到了例外,因为RedirectToAction方法有6个签名,当你写RedirectToAction("Edit", model.Id);时,它可以被认为是一个字符串,并将搜索名称为model.Id的控制器。请看这里MSDN:RedirectToAction。希望对你有所帮助

默认情况下MVC支持'ID'而不是'ID'或任何其他:

在你的代码中::

public ActionResult Edit(int id)
{
    //todo something.........
}

这里你已经声明了int id因为::

return RedirectToAction("Edit", model.Id);

这是不工作。

如果您已将编辑操作声明为::

public ActionResult Edit(int ID)
{
    //todo something.........
}

则可以使用::

return RedirectToAction("Edit", new { @Id = model.Id } );