0
在foreach中顯示項目我有一個建在我的剃刀桌子,我想要它時,機構的名稱是重複的,使他是一個空的領域。有沒有辦法做到這一點?當在剃刀淨重MVC
篩選plunker: https://plnkr.co/qitrBwCksORassfJkpss
剃刀:
<style>
table {
width: 100%;
}
th {
background-color: #673673;
color: white;
font-size: 14px;
text-align: center;
}
tr {
font-size: 12px;
text-align: center;
}
th, td {
padding: 8px;
}
tr:nth-child(even) {
background-color: #f2f2f2;
}
header h1 span {
text-align: center;
}
</style>
<header style="text-align:center;">
<h1>Aperam South America</h1>
<h4>
Relatório de Demandas por Instituições <br />
@DateTime.Now
</h4>
</header>
<main style="margin-top: 5%;">
<table id="report-table">
<tr>
<th>Instituition</th>
<th>Descrição da demanda</th>
<th>Periodicidade</th>
<th>Tempo Estimado</th>
<th>Situação Demanda</th>
</tr>
@foreach (var query in Model.GroupBy(i => i.COD_IDENT_INSTI).Distinct())
{
foreach (var demanda in query)
{
<tr>
<td>@demanda.INSTITUICAO_SOCIAL.NOM_FANTA_INSTI</td>
<td>@demanda.DES_COMPL_DEMAN)</td>
<td>@demanda.PERIODICIDADE.DES_COMPL_COMPT</td>
<td>@demanda.VLR_TEMPO_ESTIM</td>
<td>@demanda.COD_SITUA_DEMAN</td>
</tr>
}
}
</table>
</main>
<footer></footer>
我的控制器:
public ActionResult GerarRelatorio(RelatorioViewModel relatorio)
{
switch (relatorio.Tipo)
{
case EnumTipoRelatorio.Nenhum:
TempData["Message"] = new[] { Resources.relatorio_tipo_errro, "erro" };
return RedirectToAction("Relatorios", "Relatorio");
case EnumTipoRelatorio.demandasPorInstituicoes:
try
{
var demandas = Mapper.Map < ICollection<DEMANDA>, ICollection<DemandaViewModel>>(_demandaService.ObterTodos().ToList());
var instituicao = Mapper.Map<ICollection<INSTITUICAO_SOCIAL>,ICollection<InstituicaoSocialViewModel>>(_instituicaoSocialService.ObterTodos().ToList());
var demandasPorInstituicoes = from d in demandas join i in instituicao
on d.COD_IDENT_INSTI equals i.COD_IDENT_INSTI
where i.DAT_CRIAC_REGIS >= relatorio.InicioFiltro &&
i.DAT_CRIAC_REGIS <= relatorio.FimFiltro
select d;
//return new MvcRazorToPdf.PdfActionResult("DemandasPorInstituicoes", demandasPorInstituicoes, (writer, document) => {
// document.SetPageSize(PageSize.A3);
//});
return View("DemandasPorInstituicoes", demandasPorInstituicoes);
}
catch (Exception ex)
{
TempData["Message"] = new[] { Resources.relatorio_erro, "erro" };
return RedirectToAction("Relatorios", "Relatorio");
}
}
//var instituicao = _instituicaoSocialService.ObterTodos().ToList();
TempData["Message"] = new[] { Resources.relatorio_tipo_errro, "erro" };
return RedirectToAction("Relatorios", "Relatorio");
}
我的視圖模型:
public class DemandaViewModel
{
[Key]
[Display(Name = "Código")]
public int COD_IDENT_DEMAN { get; set; }
[Display(Name = "Instituição")]
public int COD_IDENT_INSTI { get; set; }
[Display(Name = "Periodicidade")]
public int COD_IDENT_PERIO { get; set; }
[Display(Name = "Descrição")]
[Required(ErrorMessage = "A demanda deve possuir um nome.")]
[MaxLength(128, ErrorMessage = "O nome da demanda deve possuir no máximo {1} caracteres.")]
public string DES_COMPL_DEMAN { get; set; }
[Display(Name = "Local da ação")]
[Required(ErrorMessage = "O departamento deve possuir um nome.")]
[MaxLength(128, ErrorMessage = "O nome do departamento deve possuir no máximo {1} caracteres.")]
public string DES_LOCAL_DEMAN { get; set; }
[Display(Name = "Tempo Estimado")]
[MaxLength(64, ErrorMessage = "O nome do departamento deve possuir no máximo {1} caracteres.")]
public string VLR_TEMPO_ESTIM { get; set; }
[Display(Name = "Quantidade de voluntários")]
public short NUM_VOLUN_DEMAN { get; set; }
[Display(Name = "Custo Estimado")]
public decimal? VLR_CUSTO_ESTIM { get; set; }
[Display(Name = "Classificação")]
public short? COD_CLASF_DEMAN { get; set; }
[Display(Name = "Observação")]
[Required(ErrorMessage = "A demanda deve possuir uma observação.")]
[MaxLength(1024, ErrorMessage = "A observação da demanda deve possuir no máximo {1} caracteres.")]
public string DES_OBSER_ACAO { get; set; }
[Display(Name = "Situação")]
public short? COD_SITUA_DEMAN { get; set; }
public virtual InstituicaoSocialViewModel INSTITUICAO_SOCIAL { get; set; }
public virtual PeriodicidadeViewModel PERIODICIDADE { get; set; }
public virtual ICollection<RegistroAcaoViewModel> REGISTROACAO { get; set; }
public virtual ICollection<CompetenciaViewModel> COMPETENCIA { get; set; }
public virtual ICollection<VoluntarioViewModel> VOLUNTARIO { get; set; }
}
謝謝羅斯!你的代碼真的派上用場。將來我也會修理我的控制器。 –