我正在使用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**
}
}
答案 0 :(得分:1)
我认为您有异常,因为RedirectToAction
方法有6个签名,当您编写RedirectToAction("Edit", model.Id);
时,它可以被视为字符串,并将搜索名为model.Id
的控制器。
看看MSDN:RedirectToAction。希望它能帮到你
答案 1 :(得分:0)
默认情况下,MVC支持ID' ID'而不是' id'或任何其他:
在您的代码::
中public ActionResult Edit(int id)
{
//todo something.........
}
此处您已声明int id
因为那个::
return RedirectToAction("Edit", model.Id);
这不起作用。
如果您已将Edit操作声明为::
public ActionResult Edit(int ID)
{
//todo something.........
}
然后你可以使用这个::
return RedirectToAction("Edit", new { @Id = model.Id } );