2014-11-17 6 views
0

У меня есть всего 5 моделей в моем приложении. У меня есть страница "index.cshtml", которая имеет панель панели kendo. Я упоминал каждую модель в каждой панели панели кендо. Поэтому вместо того, чтобы делать это сейчас, я хочу объединить все эти 5 моделей в один файл класса как «Mainmodel». Также я должен передать только эту модель контроллеру. контроллер, который, в свою очередь, разделяет эти модели на 5 моделей.Asp.net с MVC Частичный вид и модели

public class MainModel 
{ 
    public Model1 firstmodel{get; set;} 
    public Model2 secondmodel{get; set;} 
    public Model3 thirdmodel{get; set;} 
    public Model4 fourthmodel{get; set;} 
    public Model5 fifthtmodel{get; set;} 
} 

Я хочу использовать эту «главную» модель в поле зрения. как это сделать. ??

public class Model1 
    { 
    public string name {get; set;} 
    } 
    public class Model2 
    { 
    public string DOB{get; set;} 
    } 

//index.cshtml 

    @model mvc.Models.MainModel 

    @using (Html.Beginform("SaveData","Home")) 
    { 
     @html.kendo().panelbar() 
     .items() 
    { 
     items.add() 
     .content(@html.textboxfor(x=> x. /// here I did not get any properties that I have created name,DOB 


    } 

//My controller 

    [httppost] 
    public Actionresult SaveData(MainModel mainmodel) 
    { 
    retun view("Index",mainmodel); 
    } 

Как использовать эту свойства в MainModel внутри index.cshtml?

+0

Можете ли вы поделиться тем, что вы сделали в режиме просмотра? – dotnetstep

+0

'@ html.textboxfor (x => x.firstmodel.name)' – CSharper

ответ

0

То, что я сделал это отдельный вид на частичный вид, поэтому основной вид будет принимать (MainModel) в качестве модели, а затем парциальные будет каждый принимает другую модель из внутри (MainModel), например:

//index.cshtml 

    @model mvc.Models.MainModel 

    @using (Html.Beginform("SaveData","Home")) 
    { 
     @html.kendo().panelbar() 
     .items() 
    { 
     items.add() 
     .content(@Html.Partial("firstmodelView", Model.firstmodel)) 
} 



    //firstmodelView.cshtml 

@model Model1 
@Html.TextBoxFor(x=> x.name) 
+0

Это не работает. Что такое Model.Model1 ??? – 7783

+0

Я нашел решение .. Теперь его работа прекрасна .. – 7783

+0

Прошу прощения, это Model.firstmodel not Model.Model1 Я отредактировал ответ – MohQut

0

// Главная Модель

//index.cshtml

@model mvc.Models.MainModel 

@using (Html.Beginform("SaveData","Home")) 
{ 
    @html.kendo().panelbar() 
    .items() 
{ 
    items.add() 
    .content(@Html.Partial("firstmodelView", Model)) 

}

// В частичных статьях

@model mvc.Models.MainModel 

@Html.TextBoxFor(x=> x.Firstmodel.Name) 
Смежные вопросы