ASP.NET MVC5 - 在同一个 ActionResult 中进行创建和编辑

ASP.NET MVC5 - Doing Create and Edit in the same ActionResult

我是 MVC 的新手,我正在尝试做一些应该很简单但我似乎不太明白的事情。

默认的 MVC 模板为您设置了详细信息、编辑、创建操作结果。我正在尝试将这些步骤合而为一。我们可以去掉细节,因为编辑基本上就是细节。在编辑 ActionResult 中,我想做这样的事情:

如果没有 id 或 id 为 0,则字段应为空,以便创建新字段。否则,如果存在 id 和记录,则填充字段并在信息更改时进行更新。我有处理 create/update.

的存储库函数

我没有发现您的方法有任何问题,并且看到有几个项目采用相同的方法。除了确保现有实体的 Id 的种子不能为 0(这是 EF 中的默认行为)。

但是我会确保我不会以 view/action 和许多 switch-cases/conditions 结束。如果是这样,那就是说 edit/create 最好分开。

例如,我个人会使用 RedirectToAction("Edit"),具体取决于 id 是否具有值。这使视图保持独立并且更易于维护。

        public ActionResult Index(int? Id)
        {
            if (id.HasValue)
            {
                RedirectToAction("Edit");
            }
            // else....
        }

http://www.dotnet-tricks.com/Tutorial/mvc/4XDc110313-return-View%28%29-vs-return-RedirectToAction%28%29-vs-return-Redirect%28%29-vs-return-RedirectToRoute%28%29.html