2016-01-28 3 views
0

Может ли кто-нибудь указать пример того, как объединить 15 моделей в одном представлении? Я не могу использовать Tuple coz Tuple поддерживает только 4 модели в One View ... после 5 синтаксиса бритвы не поддерживает .. Так что я использовал словарь для списка, я могу сделать только Create view, но я не могу сэкономить по каждой модели ...Несколько моделей в одном представлении в MVC 5

в контроллер Create View

public ActionResult Create() 
    { 
     try 
     {    
      var model = new Dictionary<string, Model>() 
      { 
       { "table1", new validation.table1() }, 
       { "table2", new validation.table2() }, 
       { "table3", new validation.table3() }, 
       { "table4", new validation.table4()}, 
       { "table5", new validation.table5()}, 
       { "table6", new validation.table6()}, 
       { "table7", new validation.table7()}, 
       { "table8", new validation.table8()}, 
       { "table9", new validation.table9()}, 
       { "table10", new validation.table10()}, 
       { "table11", new validation.table11()}, 
       { "table12", new validation.table12()}, 
       { "table13", new validation.table13()}, 
       { "table14", new validation.table14() }, 
       { "table15", new validation.table15()} 
      }; 
      return View(model); 
     } 
     catch (Exception ex) 
     { 
      throw ex; 
     } 
    } 
+0

«Tuple» никогда бы не работал, и словарь не будет, потому что вы не сможете (легко) создать правильные атрибуты «name», чтобы отправить обратно в вашу модель. Создайте модель представления, которая хочет отображать/редактировать –

+0

создавать частичные представления для каждой модели –

+0

, если это не работает для вашего сценария, создайте пользовательский класс в моделях и используйте его в представлении –

ответ

0

ключевым шагом является создание класса модели, что вы хотите, чтобы ваш взгляд, чтобы иметь возможность работать, который является типом класса известного как посмотреть модель. В вашем примере вы хотели бы использовать 15 объектов. Я не уверен, какой тип объекта вы хотите, чтобы ваши «таблицы» были такими, поэтому я просто предполагаю, что в вашем коде есть класс Table, который вы можете соответствующим образом изменить в соответствии со своими спецификациями. Ваше мнение модель будет содержать 15 переменные-члены типа Table:

public class TableViewModel 
{ 
    public Table Table1 { get; set; } 
    public Table Table2 { get; set; } 
    public Table Table3 { get; set; } 
    public Table Table4 { get; set; } 
    public Table Table5 { get; set; } 
    public Table Table6 { get; set; } 
    public Table Table7 { get; set; } 
    public Table Table8 { get; set; } 
    public Table Table9 { get; set; } 
    public Table Table10 { get; set; } 
    public Table Table11 { get; set; } 
    public Table Table12 { get; set; } 
    public Table Table13 { get; set; } 
    public Table Table14 { get; set; } 
    public Table Table15 { get; set; } 
} 

В контроллере, теперь ваша работа, чтобы создать и заполнить экземпляр этого вида модели. Я не уверен, достаточно точно, где ваши объекты таблиц приходят из так что я просто скажу, что в моем примере я 15 переменных с именем «table1», «table2», и т.д .:

public ActionResult Create() 
{ 
    TableViewModel model = new TableViewModel() 
    { 
     Table1 = table1, 
     Table2 = table2, 
     Table3 = table3, 
     // ... 
     Table15 = table15 
    }; 

    return View(model); 
} 

Наконец, в ваше представление, все, что вам нужно сделать, - это строго ввести вид вашей новой модели представления.

@model TableViewModel 

// Perform work with tables; each can be referenced 
// as Model.Table1, Model.Table2, and so on. 

Вот и все!

+0

Спасибо, я так стараюсь Спасибо Чейз, спасибо Стивен Мюекке и toing_toing ... Я верну комментарии ..... –

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