无法从 int 转换为 asp.net 中的礼品卡分页错误
Posted
技术标签:
【中文标题】无法从 int 转换为 asp.net 中的礼品卡分页错误【英文标题】:Cannot convert from int to gift card paging error in asp.net 【发布时间】:2022-01-17 22:04:08 【问题描述】:我需要将 TotalCount 添加到项目,但出现无法将 int 转换为giftcardpaging 的错误。请告诉我解决方案
int TotalCount = count;
var items = source.Skip((CurrentPage - 1) * PageSize).Take(PageSize).ToList();
List<GiftCardPaging> item = items.ToList();
item.Add(TotalCount);
return item;
GiftCardPaging
的定义如下:
public class GiftCardPaging
public int TotalCount get; set;
public string PhoneNumber get; set;
public string Email get; set;
【问题讨论】:
那么,GiftCardPaging
的属性是什么?
字符串,长,双等
item.Add()
正在添加到List
- 如果你想设置GiftCardPaging
的属性,你需要做一些更像item[index].MyProperty = TotalCount
的事情
@AndrewCorrigan 我收到一个错误,例如无法将 int 转换为 GiftcardPaging
那是因为GiftCardPaging
不是整数。 GiftCardPaging
是一个对象,由各种属性组成。这就像给建筑商一块砖,并期待一座大教堂神奇地出现。如果您在GiftCardPaging
的定义中进行编辑,我也许可以了解您正在尝试做的事情
【参考方案1】:
现在所有信息都可用了,这似乎只是对对象缺乏了解。
您已经知道如何计算页数,但问题是您没有正确分配总数。
您的代码偏离轨道的第一点在这里:
var items = source.Skip((CurrentPage - 1) * PageSize).Take(PageSize).ToList();
List<GiftCardPaging> item = items.ToList();
items
已经输入为List<GiftCardPaging>
- 下一行没有任何作用。所以这可能只是:
List<GiftCardPaging> items = source.Skip((CurrentPage - 1) * PageSize).Take(PageSize).ToList();
好的,现在我们已经解决了这部分问题,进入主要问题。
您遇到的错误会告诉您问题所在。您不能从整数转换为 GiftCardPaging
。
当做类似的事情时:
myList.Add(myNewItem);
myNewItem
需要与您在声明列表时使用的类型相同。
所以问题变成了:
您是否要创建一个新的GiftCardPaging
项目(已设置TotalCount
并将其添加到列表中)?在哪种情况下:
int TotalCount = count;
List<GiftCardPaging> items = source.Skip((CurrentPage - 1) * PageSize).Take(PageSize).ToList();
GiftCardPaging item = new GiftCardPaging();
item.TotalCount = TotalCount;
items.Add(item);
return items;
或者,您想从列表中提取某个项目并为其设置值吗?在这种情况下:
int TotalCount = count;
List<GiftCardPaging> items = source.Skip((CurrentPage - 1) * PageSize).Take(PageSize).ToList();
GiftCardPaging item = items[0]; //for the sake of argument, I'll get the first from the list
item.TotalCount = TotalCount;
return item;
但我认为,在所有这些之前,你的班级结构似乎有问题。我认为最好是这样设置:
public class GiftCard
private int GiftCardID;
private Contact ContactDetails; //This references a class called Contact where you have the contact details like phone number
private List<GiftCardPage> Pages; //GiftCardPage could be an object with properties like HeaderText or Content
//Add any other details relevant to the gift card
//Throw a class constuctor here (i.e.).
public GiftCard(int id, Contact contact)
GiftCardID = id;
ContactDetails = contact;
Pages = new List<GiftCardPage>();
//Add pages here
public void AddPage(GiftCardPage page)
Pages.Add(page);
//Get Page Count
public int TotalPages()
return Pages.Count();
public class Contact
// name, telephone, etc
public class GiftCardPage
//Page specific stuff
【讨论】:
以上是关于无法从 int 转换为 asp.net 中的礼品卡分页错误的主要内容,如果未能解决你的问题,请参考以下文章