Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 值?将路由参数修改为new{new{OrderBy=ViewBag.SortOrder,page,pageSize=Model.pageSize}然后在控制器中,在返回视图之前添加ViewBag.SortOrder=OrderBy;。但是如果视图模型具有所_C#_Asp.net_Asp.net Mvc_Asp.net Mvc 4 - Fatal编程技术网

C# 值?将路由参数修改为new{new{OrderBy=ViewBag.SortOrder,page,pageSize=Model.pageSize}然后在控制器中,在返回视图之前添加ViewBag.SortOrder=OrderBy;。但是如果视图模型具有所

C# 值?将路由参数修改为new{new{OrderBy=ViewBag.SortOrder,page,pageSize=Model.pageSize}然后在控制器中,在返回视图之前添加ViewBag.SortOrder=OrderBy;。但是如果视图模型具有所,c#,asp.net,asp.net-mvc,asp.net-mvc-4,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 4,值?将路由参数修改为new{new{OrderBy=ViewBag.SortOrder,page,pageSize=Model.pageSize}然后在控制器中,在返回视图之前添加ViewBag.SortOrder=OrderBy;。但是如果视图模型具有所需的所有属性,效果会更好。@stephenmueke你的评论真的帮了我大忙!非常感谢!我已经成功了。你能给我举一个关于视图模型的例子吗?我是个初学者,我已经学会了一个是这样的,但我不知道为什么在运行应用程序时会出现此错误:方法“Skip”仅支持


值?将路由参数修改为
new{new{OrderBy=ViewBag.SortOrder,page,pageSize=Model.pageSize}
然后在控制器中,在返回视图之前添加
ViewBag.SortOrder=OrderBy;
。但是如果视图模型具有所需的所有属性,效果会更好。@stephenmueke你的评论真的帮了我大忙!非常感谢!我已经成功了。你能给我举一个关于视图模型的例子吗?我是个初学者,我已经学会了一个是这样的,但我不知道为什么在运行应用程序时会出现此错误:方法“Skip”仅支持LINQ to Entities中的排序输入。方法“OrderBy”必须在方法“Skip”之前调用。我的代码中没有Skip方法。我已经搜索了它,但找不到它。
.Skip()
PagedList
调用。很抱歉,我刚才复制了您的代码部分(您的代码也会出现此错误)。添加
其他{products=products.OrderBy(p=>p.someproperty)}
(可能是
ID
属性)因此,在调用
PagedList
之前,您可以获得一个有序的集合,当我转到时,它可以工作,但当我直接转到时,它不工作
    [HttpGet]
    public ActionResult Products(int? OrderBy, int page=1, int pageSize=6)
    {
        private Shopping db = new Shopping();
        switch (OrderBy)
        {
            case 1:
                List<Product> listProductsasc = db.Products.OrderBy(p => p.Name).ToList();
                PagedList<Product> modelasc = new PagedList<Product>(listProductsasc, page, pageSize);
                return View(modelasc);
            case 2:
                List<Product> listProductsdesc = db.Products.OrderByDescending(p => p.Name).ToList();
                PagedList<Product> modeldesc = new PagedList<Product>(listProductsdesc, page, pageSize);
                return View(modeldesc);
            default:
                List<Product> listProducts = db.Products.ToList();
                PagedList<Product> modeldefault = new PagedList<Product>(listProducts, page, pageSize);
                return View(modeldefault);
        }
    }
@model PagedList.IPagedList<FypStore.Models.Product>
@using PagedList.Mvc
<div class="row">
        <div class="col-sm-6">
            @using (Html.BeginForm("Products", "Home", FormMethod.Get, new { id = "Form1" }))
            {
                <div class="col-sm-8">
                    Sort by:
                    @Html.DropDownList("OrderBy", new List<SelectListItem>

                     {
                        new SelectListItem{ Text="A-Z", Value = "1" },
                        new SelectListItem{ Text="Z-A", Value = "2" }
                     }, "-- Order By --")

                </div>
                <div class="col-sm-4">
                    <div class="form-group">
                        <div class="col-md-offset-2 col-md-10">
                            <input type="submit" class="btn btn-default" value="Filter" />
                        </div>
                    </div>
                </div>
            }
        </div>
</div>
<br />

@Html.PagedListPager(Model, page => Url.Action("Products", new { page, pageSize = Model.PageSize }))
Showing @Model.FirstItemOnPage to @Model.LastItemOnPage of @Model.TotalItemCount Products
[HttpGet]
public ActionResult Products(int? OrderBy, int page = 1, int pageSize = 2)
{
    ViewBag.OrderBy = OrderBy;
    ...
@Html.PagedListPager(Model, page => Url.Action("Products", new { page, pageSize = Model.PageSize, OrderBy = ViewBag.OrderBy }))
List<Product> modelasc = new PagedList<Product>(listProductsasc, page, pageSize);
var viewModel = ProductsViewModel();
viewModel.Products = modelasc;
viewModel.OrderBy = OrderBy;
return View(viewModel);
@model FypStore.Models.ProductsViewModel
...
@Html.PagedListPager(Model, page => Url.Action("Products", new { page, pageSize = Model.Products.PageSize, OrderBy = Model.OrderBy }))
<div class="col-sm-8">
    Page size:
    @Html.DropDownList("pageSize", new List<SelectListItem>

            {
            new SelectListItem{ Text="2", Value = "2" },
            new SelectListItem{ Text="3", Value = "3" }
            }, "-- Page Size --")

</div>
@Html.PagedListPager(Model, page => Url.Action("Products", new { OrderBy = ViewBag.SortOrder, page, pageSize = Model.PageSize }))
ViewBag.SortOrder = OrderBy;
public class ProductsVM
{
  [Display(Name = "Sort by:")]
  public int? OrderBy { get; set; }
  public IEnumerable<SelectListItem> OrderList { get; set; }
  public int Page { get; set; }
  public int PageSize { get; set; }
  PagedList<Product> Products { get; set; }
}
[HttpGet]
public ActionResult Products(int? orderBy, int page=1, int pageSize=6)
{
  private Shopping db = new Shopping();
  IEnumerable<Product> products = db.Products; // not .ToList()
  if (orderBy == 1)
  {
    products = products.OrderBy(p => p.Name);
  }
  else if (orderBy == 2)
  {
    products = products.OrderByDescending(p => p.Name)
  }

  ProductsVM model = new ProductsVM
  {
    OrderBy = orderBy,
    OrderList = new List<SelectListItem>
    {
      new SelectListItem{ Text="A-Z", Value = "1" },
      new SelectListItem{ Text="Z-A", Value = "2" }
    },
    Page = page,
    PageSize = pageSize,
    Products = new PagedList<Product>(products, page, pageSize);
  };
  return View(model);
}
@model ProductsVM
....
@using (Html.BeginForm("Products", "Home", FormMethod.Get))
{
  @Html.LabelFor(m => m.OrderBy)
  @Html.DropDownListForFor(m => m.OrderBy, Model.OrderList, "-- Order By --")
  <input type="submit" class="btn btn-default" value="Filter" />
}

@Html.PagedListPager(Model.Products, page => Url.Action("Products", new { orderBy = Model.OrderBy, page, pageSize = Model.PageSize }))
Showing @Model.Products.FirstItemOnPage to @Model.Products.LastItemOnPage of @Model.Products.TotalItemCount Products