最好的ASP.NET MVC实践来区分具有相同签名的GET/POST操作方法?

Evg*_*nyt 3 action controller model asp.net-mvc-2

实现编辑操作时,我为Get和Post添加了两个方法:Edit(string id)

理想情况下,他们需要具有相同的签名.但当然这不可编辑.所以我在HttpPost方法中添加了一个伪参数(在我的例子中为form):

[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);
}
Run Code Online (Sandbox Code Playgroud)

任何更好/更清洁的方式来实现编辑操作?

Chr*_*s W 7

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