サイトの登録フォームにインターフェイスを追加したいと考えています。それを IShape と呼びましょう。ISquare や ICycle などのサーバル インターフェイスの実装があり、インターフェイスで宣言された共有のものを除いて、それぞれに独自のプロパティがあります。
私は、ユーザーが可能なすべての型から必要な数の形状を持ち、RegisterModel として受け取った情報を入力できるようにしたいと考えています。
public class RegisterModel
{
[Required]
[Display(Name = "Username")]
public string UserName { get; set; }
[Required]
[Display(Name = "Shapes")]
public List<string> Shapes { get; set; }
}
登録アクション:
public ActionResult Register(RegisterModel model)
{
if (ModelState.IsValid)
{
// Iterate over the shapes
model.Shapes ...
}
}
複数のオブジェクトがある場合、それらの名前が競合するため、JavaScript の問題を参照してください。例: 2 つの形状には size プロパティがあります。「サイズ」という名前のテキスト ボックスを 2 つ作成すると、ASP.NET エンジンはそれを解決できません。
ありがとう!