我正在开发一个MVC4项目,同一个控制器里有两个名称和参数相同的操作:
public ActionResult Create(CreateBananaViewModel model)
{
if (model == null)
model = new CreateBananaViewModel();
return View(model);
}
[HttpPost]
public ActionResult Create(CreateBananaViewModel model)
{
// Model Save Code...
return RedirectToAction("Index");
}
我希望在Create方法中传递一个现有的模型,以便克隆并修改现有的模型。
显然,编译器不喜欢这个做法,所以我已经将其中一个方法更改为:
[HttpPost]
public ActionResult Create(CreateBananaViewModel model, int? uselessInt)
{
// Model Save Code...
return RedirectToAction("Index");
}
这样做可以吗?或者有没有更好的方法解决这个问题呢?
编辑/解决方案:
看起来我完全把情况弄复杂了。这是我的解决方案:
public ActionResult Duplicate(Guid id)
{
var banana = GetBananaViewModel(id);
return View("Create", model);
}
public ActionResult Create()
{
var model = new CreateBananaViewModel();
return View(model);
}