public PartialViewResult NewsList(int? id, int? pageSize, string category)
{
ViewData["pageSize"] = pageSize;//在前端直接使用这些对象就可以了!
ViewData["category"] = category;
PagedList<News> newlist = mynewsdb.newsInfo.Where(w => (w.Category == category)).OrderByDescending(o => o.ID).ToPagedList(id ?? 1, pageSize ?? 20);
if (Request.IsAjaxRequest())
{
return PartialView(newlist);
}
return PartialView(newlist);
}
在controller中的action中接收
在controller中的action中是可以接收,但是我是要在viewB中接收呀,怎么接收呢??
哪个Action返回ViewB的,就在哪个Action的return View()里面传Model.
我猜你的意思应该用@Html.Partial或者@Html.RenderPartial而不是Html.RenderAction
viewB的Action是这样的:
public PartialViewResult NewsList(int? id, int? pageSize, string category)
{
PagedList<News> newlist = mynewsdb.newsInfo.Where(w => (w.Category == category)).OrderByDescending(o => o.ID).ToPagedList(id ?? 1, pageSize ?? 20);
if (Request.IsAjaxRequest())
{
return PartialView(newlist);
}
return PartialView(newlist);
}
@viming:
如果不是Model的话,那就放在ViewData或者ViewBag中,就可以传递到View中了.
建议通过ViewModel进行传递,ViewModel包含newlist, pageSize, category
页面 不是也可以 @{ Request["id"] } 吗
用TempData吧,但只能使用一次
在Action中:
var pageSize = RouteData.Values["pageSize"];
var category = RouteData.Values["category"];