1

親オブジェクトと子オブジェクトの関係を扱うウィザードまたは複数ステップのフォームを作成しようとしています。ステップ 1 で親オブジェクトを作成し、次にステップ 2 で最初の子オブジェクトを作成します。

モデル:

    public class Company
    {
      [Key]
      public int ID{get;set;}
      public string CompanyName{get;set;}
      public virtual List<Employee> Employees{get;set;}
    }
    public class Employee
    {
      [Key]
      public int ID{get;set;}
      public string EmployeeName{get;set;}
      [ForeignKey("CompanyID")]
      public Company EmployeeCompany{get;set;}
      public int CompanyID {get;set;}
    }

目標は、最初に会社情報を取得し、次に従業員情報に進む 2 段階のフォームを作成することです。これを処理するためにコントローラーをどのように設定しますか? 会社用に 2 つ、従業員用に 2 つのアクション結果を設定しますか。1 つの actionresult が空白/空のフォームを返し、2 番目の actionresult が HttpPost actionresult を処理します。

    ActionResult CreateCompany()
    {
      //Send back a blank view to create the company
      return View();
    }
    [HttpPost]
    ActionResult CreateCompany(Company comp)
    {
       //Check comp.id to determine if it is add or update then save changes via entity framework
       //Use newly created ID from database for next step
       Return CreateEmployee(comp.id)
    }
    ActionResult CreateEmployee(int companyid)
    {
       //This is where I get stuck
       //Do I create a new employee object and set the companyid
       return View(); //Blank CreateEmployee View
    }
    [HttpPost]
    ActionResult CreateEmployee(Employee employee)
    {
       //Add employee to company and save the company via entity framework
       //Send to next page or next step of wizard
    }

これには部分ビューを使用した方がよいでしょうか? たぶん、いくつかのjquery/ajaxを実行して、会社の作成を投稿し、従業員の作成を表示しますか?

4

0 に答える 0