为什么我会收到错误消息 "operator cannot be applied to operands of type string and int"?

Why am I getting the error message "operator cannot be applied to operands of type string and int"?

我想做一个分页系统,所以我做了一个通用的 class,我想在其中检索 url 的页面和大小参数的值,但是它不起作用,我收到此消息:

operator cannot be applied to operands of type string and int

这是代码:

    // http://localhost:6289/api/Customer?page=3&size=3

    public static IQueryable<T> Paginate<T>(this IQueryable<T> source)
    {
        var queryParams = HttpContext.Current.Request.QueryString;
        
        string page = queryParams.Get("page");
        var size = queryParams.Get("size");
     
        return source.Skip((page - 1) * size).Take(size);
    }

您需要将字符串 pagesize 转换为 int。试一试:

 string page = queryParams.Get("page");
 int p = int.Parse(page);
 int s = int.Parse(size);
 return source.Skip((p- 1) * s).Take(s);

您需要将获取参数从字符串转换为整数。

试试这个:

int page, size;
if (Int32.TryParse(queryParams.Get("page"),out page) && 
    Int32.TryParse(queryParams.Get("size"),out size)) {
        return source.Skip((page - 1) * size).Take(size);
} 
else {
    // return 404 of some such in case of non-integer input
}