实施Edit操作时,我为Get和Post添加了两种方法:Edit(string id)

理想情况下,它们需要具有相同的签名。但是,这当然是不可编译的。因此,我在HttpPost方法中添加了一个虚拟参数(以我的情况为例):

[HttpGet]
public ActionResult Edit(string id)
{
    var user = Entities.Users.SingleOrDefault(s => s.UserID == id);
    return View(user);
}

[HttpPost]
public ActionResult Edit(string id, FormCollection form)
{
    var user = Entities.Users.SingleOrDefault(s => s.UserID == id);
    if (TryUpdateModel<User>(user, new[] { "Email", "FullName" }))
    {
        Entities.SaveChanges();
        RedirectToAction("Index");
    }
    return View(user);
}


有什么更好/更干净的方法来实现编辑操作?

最佳答案

在控制器中为方法指定一个唯一的名称,例如添加“ _POST”作为后缀。然后,您可以使用[ActionName("actualname")]属性以您的操作使用的名称来标记您的方法。

10-02 01:37
查看更多