我正在开发一个 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);
}