Forms 将必填字段作为下拉列表或创建新值的MVC表单

Forms 将必填字段作为下拉列表或创建新值的MVC表单,forms,model-view-controller,frameworks,modal-dialog,entity,Forms,Model View Controller,Frameworks,Modal Dialog,Entity,我有一个实体框架,代码优先,用于创建ToDo模型的MVC表单。 ToDo表单有一个下拉列表,用户必须在其中选择所需的客户端 public class ToDo { [Key] public int ToDoId {get;set;} [Required] public int ClientId {get;set;} public string TaskDescription {get;set;} } public class Client {

我有一个实体框架,代码优先,用于创建ToDo模型的MVC表单。 ToDo表单有一个下拉列表,用户必须在其中选择所需的客户端

public class ToDo
{
     [Key]
     public int ToDoId {get;set;}
     [Required]
     public int ClientId {get;set;}
     public string TaskDescription {get;set;}
}

public class Client
{
     [Key]
     public int ClientId {get;set;}
     public string ClientName {get;set;}
     public string AddressLine1 {get;set;}
     public string AddressLine2 {get;set;}       
}
我希望能够提供从同一屏幕添加新客户端的选项,而不会丢失可能已经输入的信息和ToDo信息

我已经尝试将当前票证数据发布到单独的操作中,并使用客户端表单将部分视图返回到模式。 但是在提交客户机表单时,因为传递给操作的数据也必须是ToDo模型(如果我想在返回时预填充ToDo表单) ModelState仍在针对ToDo对象而不是客户端对象进行验证


很明显,我的做法是错误的,但是我在网上找不到关于我的场景的任何信息。

一个典型的方法是使用弹出式表单,它生成一个ajax帖子来创建新记录,并在成功回调中,将选项添加到
元素中。谢谢。我不得不转到另一个项目,但下周应该可以再看一次。谢谢Stephen,你的建议和项目的休息让我完成了这项工作。我忽略了一件事,那就是我没有坚持只返回Json或只返回部分视图。事实上,我可以根据情况进行选择。如果客户端添加正确,我可以在关闭模型之前发送一个json对象,其中包含更新原始表单所需的任何信息。或者,如果帖子不起作用,我可以发回原始模型的部分视图,以便重试。