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
方法有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 } );