2013-04-21 83 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> 
相關問題