首页 新闻 会员 周边 捐助

mvc3 RenderAction传参问题

0
悬赏园豆:80 [已解决问题] 解决于 2012-07-12 15:05
 我在viewA中调用部分视图viewB
代码如下:@{Html.RenderAction("NewsList","News",new{pageSize=13, category = "company"});}
请问如何在viewB中接收viewA中传过来的参数pageSize和category 呢?? 
viming的主页 viming | 初学一级 | 园豆:7
提问于:2012-07-03 16:54
< >
分享
最佳答案
1

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);
}

收获园豆:60
Chobites | 初学一级 |园豆:135 | 2012-07-03 21:41
其他回答(6)
0

在controller中的action中接收

artwl | 园豆:16736 (专家六级) | 2012-07-03 17:11

在controller中的action中是可以接收,但是我是要在viewB中接收呀,怎么接收呢??

支持(0) 反对(0) viming | 园豆:7 (初学一级) | 2012-07-03 17:20
0

哪个Action返回ViewB的,就在哪个Action的return View()里面传Model.

我猜你的意思应该用@Html.Partial或者@Html.RenderPartial而不是Html.RenderAction

zhangweiwen | 园豆:904 (小虾三级) | 2012-07-03 17:32

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);
}

支持(0) 反对(0) viming | 园豆:7 (初学一级) | 2012-07-03 17:38

@viming: 

如果不是Model的话,那就放在ViewData或者ViewBag中,就可以传递到View中了.

支持(0) 反对(0) zhangweiwen | 园豆:904 (小虾三级) | 2012-07-03 17:57
1

建议通过ViewModel进行传递,ViewModel包含newlist, pageSize, category

收获园豆:20
dudu | 园豆:30948 (高人七级) | 2012-07-03 20:51
0

页面 不是也可以 @{ Request["id"] } 吗

Qlin | 园豆:2403 (老鸟四级) | 2012-07-04 17:15
0

用TempData吧,但只能使用一次

Genius Zhang | 园豆:401 (菜鸟二级) | 2012-07-05 15:53
0

在Action中:

var pageSize = RouteData.Values["pageSize"];

var category = RouteData.Values["category"];

LoveSong | 园豆:202 (菜鸟二级) | 2012-12-11 11:24
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册