#asp.net-mvc-4
#asp.net-mvc-4
Вопрос:
я хочу получить данные из трех групп моделей, проектов и пользовательского профиля. я попытался создать новый класс, который их получит, а затем вызвать этот class1 в качестве модели для использования в макете, но, к сожалению, данные не отображаются..
это класс, который я создал для передачи 3 моделей в представление
public class Class1
{
public IEnumerable <UserProfile> user {get; set;}
public IEnumerable<Projects> project { get; set; }
public IEnumerable <Groups> group{ get; set; }
}
здесь, где данные должны отображаться в макете
<div id="collapseOne" class="panel-collapse collapse in">
<div class="panel-body">
@if (Model.group != null)
{
foreach (var d in Model.group)
{
<div class="panel-body"> @d.GroupName</div>
}
}
</div>
</div>
в контроллере
databaseDBEntities1 db = new databaseDBEntities1();
public ActionResult Index(Groups g , Projects P , UserProfile U)
{
Class1 c = new Class1();
return View(c);
}
Ответ №1:
вы обрабатываете пустой объект без настройки свойств:
public ActionResult Index(Groups g , Projects P , UserProfile U)
{
Class1 c = new Class1();
c.user = U;
c.project = P;
c.group = g;
return View(c);
}
или:
public class Class1
{
public List<UserProfile> user {get; set;}
public list<Projects> project { get; set; }
public List<Groups> group{ get; set; }
}
public ActionResult Index()
{
Class1 c = new Class1();
c.user = db.UserProfile.ToList();
c.project = db.Projects.ToList();
c.group = db.Groups.ToList();
return View(c);
}
Ответ №2:
Вам нужно установить группы, проекты и пользовательский профиль в Class1 следующим образом.
databaseDBEntities1 db = new databaseDBEntities1();
Class1 c = new Class1();
c.user = db.UserProfile();
c.project = db.Projects();
c.group = db.Groups();
return View(c);
Если методы индексирования уже используют эти объекты, вы также можете установить эти свойства, как @ehsan mansion it.
Class1 c = new Class1();
c.user = U;
c.project = P;
c.group = g;