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

时间:2015-01-19 15:37:48

标签: asp.net asp.net-mvc

我对MVC很新,我正在努力做一些应该很简单的事情,但我似乎无法得到它。

默认MVC模板为您设置详细信息,编辑,创建操作结果。我试图将这些步骤合二为一。我们可以取消的细节因为编辑基本上是细节。在Edit ActionResult中,我想做这样的事情:

如果没有id或id为0,则字段应为空,以便可以创建新的字段。否则,如果存在id并且记录存在,则填充字段并在信息更改时进行更新。我有处理创建/更新的存储库函数。

2 个答案:

答案 0 :(得分:3)

我个人会去RedirectToAction("编辑"),具体取决于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

答案 1 :(得分:2)

我认为您的方法没有任何问题,并且看到一些项目走的路径相同。除了确保Id的种子对于现有实体不能为0(这是EF中的默认行为)。

但是,我确保我不会最终得到具有许多开关案例/条件的视图/操作。如果是这样的话,那就是说编辑/创作最好不要分开。