我有一个详细信息页面,它从几个表中输入数据。我希望它返回一个表的完整列表,然后根据视图的不同部分中的类别将列表分割出来。我没有问题把完整的清单拿回来:
var query = string.Format("Select C.* from Cards C Left Join CardDecks CD ON CD.CardID = C.CardID Where DeckID = {0}", id);
var cardlist = db.Cards.SqlQuery(query).ToList();这又带来了苹果,橙,橙,柠檬之类的东西。当我试着把它分割出来的时候,我想要的是:
我的视图模型:
public class ViewDeck
{
public Deck Deck { get; set; }
public Card Cards { get; set; }
public CardDeck CardDecks { get; set; }
public IList<Card> CardList { get; set; }
public dynamic Creatures { get; set; }
}有此问题的意见部分:
CREATURES<br />
@foreach (var item in Model.Creatures)
{
@Model.Creatures<br />
}我得到的结果是重复最后一次计数加上标题,就像1xLime一样重复,因为标题中有许多字符。我不明白为什么它贯穿于标题的每一个字符,而不是仅仅抓住标题的全部价值。
发布于 2015-08-27 18:01:15
必须将模型中的Creatures定义为列表而不是string,然后通过在循环中添加项来生成列表:
var creaturelist = new List<string>();
var list = creatures.Select(t => t.Title).ToList();
var section = list.GroupBy(c => c, (a, b) => new { Title = a, Count = b.Count() });
foreach (var item in section)
{
creaturelist.Add(string.Format("{0}x {1}", item.Count, item.Title));
}
var vm = new ViewDeck();
vm.Deck = deck;
vm.CardList = cardlist;
vm.Creatures = creaturelist;
return View(vm);在视野中
CREATURES<br />
@foreach (var item in Model.Creatures)
{
@item<br />
}您可以在没有循环的情况下创建列表:
var creaturelist =
list.GroupBy(c => c, (a, b) => string.Format("{0}x {1}", b.Count(), a)).ToList();https://stackoverflow.com/questions/32256249
复制相似问题