在View中显示唯一的ID ASP.NET MVC

问题描述:

我对我的视图有麻烦。目前我正在创建一个表单。这是一个模型,有三个一对多的参考,基本上存储三个模型的数据。 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'。如果是这样,省略显示值,否则显示它并重置'委员会'的值 –

你试图删除具有重复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