2016-06-17 2 views
0

У меня есть форму в add.cshtml. Я использую бритву и @ Html.EditFor() помощник.ASP.NET MVC, jQuery, модалы и список сложных типов в viewmodel.

Мои 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 Я хочу создать AddMerchantViewModel и Sens с помощью AJAX для моего WebAPI.

Я использую .cshtml страницы и @ Html.EditFor helper. Итак, бренды - это коллекция AddBrandViewModel.

Мне нужен дисплей EditFor (бренд => бренд) // свойства в MODAL. И после заполнения модального я хочу добавить эти данные в UL в моей форме. Как я могу отображать EditFor (бренд) в Modal.

+0

Я хотел бы предложить создание пользовательских фронт- для этого сценария. – 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: Все детали должны быть в порядке, не должно быть никакого скачка между IDX, как [1, 3, 4, 5], в этом случае она будет проходить только к действию [1]

+0

Думаю, я этого не понимаю. В вашем коде вы перебираете бренды (коллекцию) и отображаете их свойство. Но это пустая коллекция, потому что этот сценарий находится в представлении CREATE. – Nerf

Смежные вопросы