C# 在ASP.NET MVC应用程序中创建项目和用户记录的工作流

C# 在ASP.NET MVC应用程序中创建项目和用户记录的工作流,c#,asp.net-mvc,rest,workflow,C#,Asp.net Mvc,Rest,Workflow,我有一个应用程序,它有一个Projects表和一个Users表。在我的“创建新项目”表单中,我有一个项目经理必填字段。但是,Project Manager的用户记录可能还不存在。项目经理是必填字段 到目前为止,我一直在“一屏一记录”的基础上开发应用程序,但这种情况要求用户首先创建用户记录(因为项目经理是必填字段),然后创建项目记录并将新用户指定为项目经理 直观地说,用户希望首先创建项目,但这需要三个步骤(项目创建、用户创建、将用户指定为项目经理),并且它们必须锁定在一起,因为项目经理是必填字段,

我有一个应用程序,它有一个Projects表和一个Users表。在我的“创建新项目”表单中,我有一个项目经理必填字段。但是,Project Manager的用户记录可能还不存在。项目经理是必填字段

到目前为止,我一直在“一屏一记录”的基础上开发应用程序,但这种情况要求用户首先创建用户记录(因为项目经理是必填字段),然后创建项目记录并将新用户指定为项目经理

直观地说,用户希望首先创建项目,但这需要三个步骤(项目创建、用户创建、将用户指定为项目经理),并且它们必须锁定在一起,因为项目经理是必填字段,并且应用程序必须足够聪明,才能使用现有的用户记录,如果有的话


你会使用什么策略?您会将所有内容放在一个表单上(包括可选的新用户)并将复杂的ViewModel推送到controller方法,还是会采用多步骤表单策略,还是会做其他事情?我曾考虑过在新项目表单上添加新用户弹出表单,但这感觉有点太聪明,不够安静。

在这种情况下,我认为在新项目表单的项目经理下拉列表中添加“创建新用户”选项是合理的。如果选中此选项,则会向用户显示新的用户表单,并且可以在项目的同时添加项目经理记录


如果您的视图和视图模型被很好地隔离,那么您可以使用AJAX将新的用户表单作为一部分加载到新的项目表单中。通过这种方式,您可以在提供良好用户体验的同时保持视图、模型和视图模型的独立性。

类似向导的行为可能是最方便用户的。如果需要,您可以跳过无用的步骤