2016-06-17 9 views
0

私はadd.cshtmlにフォームを持っています。 私はrazorと@ Html.EditFor()ヘルパーを使用しています。viewmodelのASP.NET MVC、jQuery、モーダルおよび複合型リスト。

私のViewModel:

public class MerchantViewModel { 
    // properties 
    public IEnumerable<AddBrandViewModel> Brands { get; set; } 
    } 

    public class AddBrandViewModel { 

    public string Name { get; set; } 
    public string Url { get; set; } 
    public string Logo { get; set; } 
    public AddressViewModel Address { get; set; } 

    } 

そして今Viewで、私は私のWebAPIのにAJAXを経由してAddMerchantViewModelとSENSを作成したいです。

私は.cshtmlページと@ Html.EditForヘルパーを使用しています。 ブランドはAddBrandViewModelのコレクションです。

MODALのEditFor(brand => brand)//プロパティが必要です。 塗りつぶされたモーダルの後、これらのデータを自分のフォームでULに追加したいと思います。 ModalにEditFor(ブランド)を表示する方法。

+0

に渡す、[1, 3, 4, 5]のように、IDXの間の任意のジャンプがあってはならないフロントこのシナリオの最終実装です。 – sed

答えて

0

ループをforeachループで実行してこの問題を解決したいと思います。

ここでのトリックは、配列のように名前を付けることです。

例:

<div> 
    @{ 
     int idx = 0; 
    } 

    @foreach (var brand in Model.Brands) 
    { 
     @Html.TextBox("Brands[" + idx + "].Name", brand.Name); 
     @Html.TextBox("Brands[" + idx + "].Url", brand.Url); 
     @Html.TextBox("Brands[" + idx + "].Address.PostCode", brand.Address.PostCode); 
     @Html.TextBox("Brands[" + idx + "].Address.Locality", brand.Address.Locality); 

     idx++; 
    } 
</div> 

プロパティを送信している。この方法では、配列のようにバインドされます。

PS:すべての項目を順番にする必要があり、この場合にはそれだけで私はカスタムを作成することをお勧めしたいアクション[1]

+0

私はそれを理解していないと思う。あなたのコードでは、ブランド(コレクション)を繰り返し、そのプロパティを表示します。このシナリオはCREATEビューにあるため、空のコレクションです。 – Nerf

関連する問題