2013-04-21 50 views
2

我想通过两个模型进入部分视图。问题是,在我查看我只能找到:“Model.Class1”和“Model.Class2”,而我实际上想要Model.Class2.UserID ..在一个视图中的ASP.NET NET MVC 2模型

我确实得到它的工作,但后来抱怨关于GetEnumerator()什么的。也尝试过元组,它根本没有为我工作。 ASP NET MVC非常新,所以我很乐意! :) 请回复!

模型类:

public class Class1ANDClass2 
    { 
     public IEnumerable<Klubben.Models.Class1> class1 { get; set; } 
     public IEnumerable<Klubben.Models.Class2> class22{ get; set; } 
    } 

我的观点:

@model IEnumerable<Klubben.Models.Class1ANDClass2>////(Contains classes Omraade and Medlem) 

    @foreach (var item in Model) 
    { 
    if(item.Class1.UserID >= 1) ////This does not work, which i need it to do 
     ///For example show item.Class2.Username 

    } 

我的控制器:

public ActionResult PartialView() 
     { 
      try 
      { 
       IEnumerable<Class1> c1 = some object 
       IEnumerable<Class2> c2 = some object 

       Class1ANDClass2 omt= new Class1ANDClass2(); 
       omt.Class1 = c1 
       omt.Class2 = c2; 

       return PartialView("MyPartial", omt); 
      } 
      catch (Exception feil) 
      { 
       return PartialView("exception"); 
      } 
     } 

回答

3

问题是与你的循环

@model IEnumerable<Klubben.Models.Class1ANDClass2>////(Contains classes Omraade and Medlem) 

@foreach (var item in Model.class1) 
{ 
if(item.UserID >= 1) ////This does not work, which i need it to do 
    ///For example show item.Username 

} 

// similarly for class2 

@foreach (var item in Model.class2) 
{ 
    if(item.aProperty >= 1) ////This does not work, which i need it to do 
    ///For example show item.otherProperty 

} 
0

您正从操作方法返回一个名为omt的对象。但是你的观点期待一个IEnumerable。

更改视图模型声明

**@model Klubben.Models.Class1ANDClass2** 

@foreach (var item in Model.Class1) 
{ 
if(item.Class1.UserID >= 1) ////This does not work, which i need it to do 
    ///For example show item.Class2.Username 
} 
0

可以使用元组访问多个模型在如下视图

@model Tuple<FirstModel, SecondModel> 

<div> 
    @Model.Item1.FirstModelProp 
    @Model.Item2.SecondModelProp 
</div> 
相关问题