2017-08-22 14 views
-1

我對我的視圖有麻煩。目前我正在創建一個表單。這是一個模型,有三個一對多的參考,基本上存儲三個模型的數據。 Here's how my form looks在View中顯示唯一的ID ASP.NET MVC

正如您所看到的數據,如委託人名稱和佣金說明,我不需要重複。我需要使用剃刀代碼來發布唯一的數據名稱和描述,但成員和職位表應該以相同的方式顯示。

我找不到方法,我嘗試了很多東西,但沒有幫助。

這裏是我的Razor視圖代碼截至目前

@model IEnumerable<CPO.Models.CommissionEmployeePosition> 
@{ 
ViewBag.Title = "Index"; 
Layout = "~/Views/Shared/_Layout.cshtml"; 
} 


<h2>Commissions</h2> 

<p> 
@Html.ActionLink("Create New", "Create") 
</p> 

<table class="table table-bordered table-hover" > 
<tr> 
    <th>Commission</th> 
    <th>Description</th> 
    <th>Members</th> 
    <th>Positions</th> 
    <th>Feedback</th> 
    <th>Actions</th> 
</tr> 
@foreach (var item in Model.OrderBy(m=>m.CommissionId)) 
{ 
<tr> 
    <td> 
     @Html.DisplayFor(modelItem => item.Commission.Name) 
    </td> 
    <td> 
     @Html.DisplayFor(modelItem => item.Commission.Description) 
    </td> 
    <td> 
     @Html.DisplayFor(modelItem => item.Employee.Name) 
    </td> 
    <td> 
     @Html.DisplayFor(modelItem => item.EmployeePosition.Name) 
    </td> 
    <td> 
     <p>@Html.ActionLink("List", "Index", "Annotation", new { id = 
item.Commission.Id }, null)</p> 
     <p>@Html.ActionLink("New", "Create", "Annotation", new { id = 
item.Commission.Id }, null)</p> 
    </td> 
    <td> 
     <p>@Html.ActionLink("Delete Commission", "Delete", "Commission", new 
{ id = item.Commission.Id }, null)</p> 
    </td> 
</tr> 
} 

</table> 

任何幫助,高度讚賞。如果需要,我可以插入我的數據庫,外觀和其他東西,但截至目前我不認爲這是必要的(我可能是非常錯誤的)

編輯: 我的操作,將值插入到此數據庫

foreach (var employee in model.Employees) 
       { 
        if (employee.Selected == true) 
        { 
         var commissionemployeeposition = new CommissionEmployeePosition(); 
         commissionemployeeposition.CommissionId = commission.Id; 
         commissionemployeeposition.EmployeeId = employee.Id; 
         if (model.SupervisorID == commissionemployeeposition.EmployeeId) 
          commissionemployeeposition.EmployeePositionId = (int)Position.Supervisor; 
         else 
          commissionemployeeposition.EmployeePositionId = (int)Position.Member; 

         //commission.CommissionEmployeePositions.Add(commissionemployeeposition); 
         unitOfWork.CommissionEmployeePositionRepository.Insert(commissionemployeeposition); 
        } 
       } 

編輯:我加了我的模型

public class CommissionEmployeePosition 
{ 
    public int CommissionId { get; set; } 
    public int EmployeeId { get; set; } 
    public int EmployeePositionId { get; set; } 
    public Commission Commission { get; set; } 
    public Employee Employee { get; set; } 
    public EmployeePosition EmployeePosition { get; set; } 
} 
+0

您確定您爲模型中的每件商品提供了不同的佣金名稱和描述嗎? –

+0

顯示添加到表格中的方法的新代碼 –

+0

爲'Commission'聲明一個變量。在循環中檢查'item.Commission.Name'是否匹配'Commission'。如果是這樣,省略顯示值,否則顯示它並重置'委員會'的值 –

回答

1

你試圖刪除具有重複NameDescription項目?這是我從問題中收集到的,如果這不正確,那麼很抱歉。

你應該能夠做這樣的事情在你的剃鬚刀語法...

編輯:名稱和描述是兒童對象。

@foreach (var item in Model.OrderBy(m => m.CommissionId).GroupBy(m => new { m.Commission.Name, m.Commission.Description }).Select(group => group.First())) 
+0

{{}}之前使用哈希集。名稱,m.Description}說,我不能將方法組分配給匿名類型屬性。 – HighSepton

+0

你能分享你的模型嗎? – ragerory

+0

在問題中加入了它,希望它有幫助。 – HighSepton