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

#asp.net-mvc

#asp.net-mvc

Вопрос:

как я могу передать несколько моделей контроллеру и привязать данные к viewpage

у меня есть страница списка на этой странице, содержащая две вкладки: одну для активного списка, а другую в активном списке.

как я могу создать модель и привязать данные к viewpage.

как я могу привязать данные к странице просмотра, я использовал строго типизированную модель

 public class MyViewModel
{
    public IEnumerable<SomeViewModel> Active { get; set; }
    public IEnumerable<SomeViewModel> InActive { get; set; }
}
  

это мой код страницы просмотра

 <% foreach (var model in Model)
   { %>
     <tr>
       <td>
          <%= Html.ActionLink(model.TITLE, "Detail", new { id = model.EVENT_ID })%>
        </td>
  

Я получил сообщение об ошибке

 Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately. 

Compiler Error Message: CS1061: 'System.Collections.Generic.IEnumerable<EventListing.Models.MyViewModel>' does not contain a definition for 'Active' and no extension method 'Active' accepting a first argument of type 'System.Collections.Generic.IEnumerable<EventListing.Models.MyViewModel>' could be found (are you missing a using directive or an assembly reference?)

Source Error:



Line 221:                    </thead>
Line 222:                    <tbody>
Line 223:                        <% foreach (var model in Model.Active)
Line 224:                           { %>
Line 225:                        <tr>
  

Комментарии:

1. Этот вопрос очень расплывчатый — stackoverflow не поможет вам изучить MVC, но поможет вам решить конкретные проблемы в MVC. Для изучения MVC3 перейдите сюда и здесь

Ответ №1:

У вас может быть модель представления, которая содержит два списка в качестве свойств:

 public class MyViewModel
{
    public IEnumerable<SomeViewModel> Active { get; set; }
    public IEnumerable<SomeViewModel> InActive { get; set; }
}
  

а затем передать экземпляр MyViewModel в представление из действия контроллера.

Комментарии:

1. как я могу привязать данные к странице просмотра, я использовал строго типизированную модель. это мой код страницы просмотра — <% foreach (переменная модель в модели) { %> <tr> <td> <%= Html. ActionLink(модель. ЗАГОЛОВОК, «Подробности», новый { id = model.EVENT_ID })%> </td>

2. @sathishkumar, предполагая, что вы используете модель, которую я предложил, вы могли бы перебирать активное свойство: <% foreach (var model in Model.Active) { %>

3. я получил ошибку, я упоминаю об ошибке в своем сообщении. пожалуйста, дайте мне решение

4. @sathishkumar, представление не должно использоваться IEnumerable<EventListing.Models.MyViewModel> в качестве модели, но EventListing.Models.MyViewModel .