asp.net-mvc-2 - 区分具有相同签名的 GET/POST 操作方法的最佳 ASP.NET MVC 实践?

标签 asp.net-mvc-2 model controller action

在实现编辑操作时,我添加了两种获取和发布方法: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);
}

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

最佳答案

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

关于asp.net-mvc-2 - 区分具有相同签名的 GET/POST 操作方法的最佳 ASP.NET MVC 实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3167092/

相关文章:

Laravel 从数据库或迁移脚本生成模型、 View 和 Controller

c# - ASP.NET MVC Url.Action 和路由名称值

mysql - Magento:带锁的自定义 MySQL 查询不起作用

django - 如何删除 Django 模型表的前缀?

java - requestparam 的 Spring 验证不起作用

asp.net - 在 ASP.NET MVC 4 Controller 中设置 header

c# - 从列表中添加/删除项目作为 View 中模型的属性

asp.net - 具有 MVC 2 强类型 HTML 助手的自定义 ViewModel 在创建时返回空对象?

css - 如何使用 Asp.Net MVC 管理 Multi-Tenancy Web 门户 css

php - cakePHP 找不到验证处理程序