2014-03-06 71 views
0

我工作的一個ASP.NET MVC應用5。我需要在局部視圖中創建表單。在這個表格中,我傳遞了ViewModel,它們包含所有相關的模型類實例。現在是模型類之一,我需要傳遞數據列表,以便我可以在foreach循環中使用剃鬚刀代碼進行打印。傳遞模型和modellist數據一起的局部視圖 - ASP.NET MVC 5

現在我需要的是通過幾個類和一個模型來查看列表數據的模型......

非常感謝

視圖模型:

public class QualificationViewModel : LEO.DAL.ViewModels.IQualificationViewModel 
{ 
    public Qualification _Qualification { get; set; } 
    public QualificationType _QualificationType { get; set; } 
    public Subject _Subject { get; set; } 
    public ComponentScheme _ComponentScheme { get; set; } 
} 

控制器:

[HttpGet] 
    public ActionResult CreateNewQualification() 
    { 
     var model = new QualificationViewModel(); 

     var ComponentList = //imagin this is list of components that i need to send along with viewModel    ?????????????????????? 

     return PartialView("PartialQualification_Create", model); 
    } 

查看(需要更正此部分(此處顯示清單數據)

@model LEO.DAL.ViewModels.QualificationViewModel 

@*<div class="_FormGrid_block_1"> 
       <table class="table"> 
        <tr> 
         <th> 
          @Html.DisplayNameFor(model => model._ComponentScheme.ComponentTitle) 
         </th>       
         <th>head1</th> 
        </tr> 

        @foreach (var item in Model._ComponentScheme) 
        { 
         <tr> 
          <td> 
           @Html.DisplayFor(modelItem => modelItem._ComponentScheme.ComponentTitle) 
          </td> 

          <td> 
           aaaaaaaaaaaaaa 
          </td> 
         </tr> 
        } 

       </table> 
      </div>*@ 
+2

什麼是你的問題? –

+0

如果我理解corectly你想發送一個對象列表類型'QualificationViewModel'到模型? –

+0

與ComponentScheme – toxic

回答

1

如果我理解正確,你要視圖模型發送到局部視圖,並在某些情況下發送另一個列表(ComponentList),以同樣的看法?如果這是你想要的,你有很多方法:

創建一個擁有兩個屬性的新視圖模型:QualificationViewModel,你想發送到視圖,然後您的視圖綁定到新的模式類型的列表

public class ExtendedQualificationViewModel 
{ 

    public QualificationViewModel OldViewModel { get; set; } 

    public IEnumerable<SomeType> ComponenetList {get;set;} 
} 

,並在視圖

@model LEO.DAL.ViewModels.ExtendedQualificationViewModel 

或者你也可以做同樣的與原始模型是這樣的擴展:

public class ExtendedQualificationViewModel : QualificationViewModel 
{ 
    public IEnumerable<SomeType> ComponenetList {get;set;} 
} 

並在視圖中執行相同的綁定。

最後,你可以添加到列表中的ViewData,然後在視圖中進行檢索。

+0

的共同的ListData是的,我想送togather幾類的列表和模式,你的訂閱方法的工作......但是我得到錯誤顯示說比如ComponentScheme.Title環路在剃刀代碼 – toxic

+0

如果你能解釋一下在這裏可以很容易地發現錯誤以及我實施我的建議的方式,但我可能會提供幫助,但是關閉此問題可能更簡單(通過接受答案),並使用新的ViewModel,視圖和錯誤發佈一個新問題。 – JTMon

+0

非常感謝它的作品 – toxic

0

除了知道您的問題之外,'QualificationViewModel`的數據庫ComponentScheme不是列表。所以你不能使用foreach循環迭代它。

0

我已經與感謝JTMon foreach循環設法迴路列表數據幫助

@if (Model._ComponentScheme !=null) 
       { 
       <table class="table"> 
        <tr> 
         <th> 
          @Html.DisplayName("abvc") 
         </th>       
         <th>head1</th> 
        </tr> 

        @foreach (var item in Model._ComponentScheme) 
        { 
         <tr> 
          <td> 
           @Html.DisplayFor(modelitem => item.ComponentTitle) 
          </td> 

          <td> 
           aaaaaaaaaaaaaa 
          </td> 
         </tr> 
        } 

       </table> 
       } 
相關問題