4

私のモデルは単純です。1 人のクライアントが複数の電話番号を持つことができます。

これをEntity Frameworkで表現しました

生成されたクライアントクラスは以下の通りです。

public partial class Client
{
    public Client()
    {
        this.PhoneNumbers = new HashSet<PhoneNumber>();
    }

    public int Id { get; set; }
    public string Name { get; set; }

    public virtual ICollection<PhoneNumber> PhoneNumbers { get; set; }
}

次に、「クライアントの作成」用のビュー ページを作成する必要があります。このページには、PhoneNumbers も入力するスペースが必要です (例: デフォルトでは、電話番号を入力するための 2 つのテキスト ボックスが必要です)。

<fieldset>
    <legend>Client</legend>

    <div class="editor-label">
        @Html.LabelFor(model => model.Name)
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.Name)
        @Html.ValidationMessageFor(model => model.Name)
    </div>

    <p>
        <input type="submit" value="Create" />
    </p>
</fieldset>

上記の「ビューの作成」のように、単純なプロパティであるため、「model.Name」に簡単にスペースを与えることができます。しかし、どうすれば電話番号の収集に同様のことを行うことができますか..??

醜いJavaScriptコードでこれを達成できることは知っていますが、ASP.NET MVCで使用できる最も簡単で簡単な方法を知りたいです...?

4

2 に答える 2

2

コレクションには、次のようなものを使用できます。

@for(int i = 0; i < Model.PhoneNumbers.Count; i++)
{
   <div class="editor-field">
        @Html.EditorFor(model => model.PhoneNumbers[i])
        @Html.ValidationMessageFor(model => model.PhoneNumbers[i])
    </div>
}
于 2013-07-13T14:50:38.110 に答える