在此for
循环中,我有这个无法访问的代码
public IActionResult List(int id) {
for (id = 0; id <= 1000; id++) {
var fil = _repoFil.GetById(id).Result;
var listafiliali = new List<FilialeVM>();
foreach (var filiale in fil) {
var filialeVM = _mapper.Map<FilialeVM>(fil);
listafiliali.Add(filialeVM);
}
return View(listafiliali);
}
return View();
}
增量id++
无法访问
答案 0 :(得分:1)
您的代码有几个问题:
id
通过了:想象我叫List(1234)
,1234
和{{1}中的789
都会被忽略} List(789)
上循环,因为您在id
循环之后返回1st
代码:您输入循环并从中返回。我想,您想要这样的东西:
return View();
或者如果您不想通过 using System.Linq;
...
public IActionResult List(int id) {
// for given id we collect all corresponding FilialeVM items
var listafiliali = _repoFil
.GetById(id) // items correspond to given id
.Result
.Select(fil => _mapper.Map<FilialeVM>(fil)) // mapped to FilialeVM
.ToList(); // organized as list
// If we have any item in listafiliali, view them, otherwise use default View()
return listafiliali.Any()
? View(listafiliali)
: View();
}
而是扫描id
范围,则:
id = [0..1000]
答案 1 :(得分:0)
无法访问,因为您在for循环中有以下行:return View(listafiliali);
。该方法返回第一个for循环迭代,并在达到前面提到的返回值后立即终止执行。
答案 2 :(得分:0)
循环完成后返回视图
public IActionResult List(int id) {
var listafiliali = new List<FilialeVM>();
for (id = 0; id <= 1000; id++) {
var fil = _repoFil.GetById(id).Result;
foreach (var filiale in fil) {
var filialeVM = _mapper.Map<FilialeVM>(fil);
listafiliali.Add(filialeVM);
}
}
if(listafiliali.Count > 0)
return View(listafiliali);
return View();
}