私は2つのテーブルを持っています:(1)食事(2)Vegatable。基本的にフォーム送信では、ユーザーは新しく作成された食事に追加する 2 つの野菜を選択します。
I. サーバー側でのモデル作成:
public class Meal{
public Meal(
Vegatables = new List<Vegatable>();
}
public int Id {get; set;}
public string Name {get; set;}
public virtual ICollection<Vegatable> Vegatables {get; set;}
}
public class Vegatable{
public Vegatable(
Meals = new List<Meal>();
}
public int Id {get; set;}
public string Name {get; set;}
public virtual ICollection<Meal> Meals {get; set;}
}
II フォーム:
<div ng-controller="MealCtrl>
<input type="text" ng-model="meal"></select>
<label>Choose Vegatable 1</label>
<div ng-controller="VegatableCtrl>
<select id="vegatable1" ng-model="vegatable" ng-options="vegatable.Name for vegatable in vegatables"></select>
</div>
<label>Choose Vegatable 2</label>
<div ng-controller="VegatableCtrl>
<select id="vegatable2" ng-model="vegatable" ng-options="vegatable.Name for vegatable in vegatables"></select>
</div>
</div>
III. 質問:
明らかに、ローカル ウィンドウでサーバー コントローラーの POST メソッドを見ると、クラス Meal のベガブル コレクションに値が割り当てられていません。
サーバーに保存する前に野菜を $scope.meal に追加する方法についてのアイデアはありますか?
最後の注意:
これは多対多の関係であるため、結合テーブルが存在します。それは POST メソッドにどのように影響しますか?
解決済み - いつものように: BLESH で救出!!
私が間違っていたことの 1 つは、select で VegatableCtrl を使用したことです。$scope.Vegatables の入力済みインスタンスが MealCtrl にある必要があり、MealCtrl を使用して Vegatables の選択項目を入力することがわかりました。
ありがとうブレッシュ!!!