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....
}
我是 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....
}