Asp.net mvc 4 从子操作获取父操作

Asp.net mvc 4 从子操作获取父操作,asp.net-mvc-4,razor,Asp.net Mvc 4,Razor,我正在创建pager部分视图,它从父视图中获取一个PageCount参数,并在视图中呈现页码 //List.cshtml bla bla data here @Html.Action("Index", "Pager", new {pageCount = 120}) 现在在pagers视图中,我想用新的页码重复父操作。。。我希望我的部分视图中的页面按钮,只需使用欣赏页面参数重复父操作,但当我调用Url.Action(null,new{page=curPage-1}MVC tracts null

我正在创建pager部分视图,它从父视图中获取一个PageCount参数,并在视图中呈现页码

//List.cshtml

bla bla data here
@Html.Action("Index", "Pager", new {pageCount = 120})
现在在pagers视图中,我想用新的页码重复父操作。。。我希望我的部分视图中的页面按钮,只需使用欣赏页面参数重复父操作,但当我调用
Url.Action(null,new{page=curPage-1}
MVC tracts null作为部分视图的操作,而不是父操作,并引发无法直接调用部分操作的异常

<a title="go to page @(curPage-1)" rel="prev" href="@Url.Action(null, new {page = curPage-1})">
    <span class="page-numbers prev">prev </span>
</a>

我的意思是,我想要
href=domain/list/id?page=2
,而不是
domain/pager/index?page=2


有没有办法用新的附加参数重复部分操作的父操作?

在父视图中使用

@{
 ViewData["ActionName"] = "MyACtion";
 ViewData["ControllerName"] = "MyControllerACtion";
}
然后调用你的局部视图。 在这里,您可以从ViewData中检索值

内部局部视图

@Html.Action(ViewData["ActionName"], ViewData["ControllerName"], new {pageCount = 120})


您是否介意从部分视图调用一个操作,然后从该视图重定向到索引操作?您是否尝试过语法Url.action(“ActionName”,“ControllerName”,new{page=curPage-1}从部分和重定向调用操作可能是一种解决方案,但我更希望它适用于不同的父操作,因为我希望将它用于支持分页的所有视图…Url.action(“ActionName”,“ControllerName”,new{page=curPage-1}必须工作。你试过了吗?问题是actionname和controllername对于不同的父视图是不同的…一种方法是将其传递到部分视图,但不确定我是否能自动获得它。请让我明白这一点。你有一个主/父视图和一个部分视图。就像wise一样,你有许多父视图和一个部分视图f或者每个。如果我错了,请纠正我。这有意义吗?当然,谢谢您的回复,那么您的意思是获取父控制器操作的唯一方法是作为参数传递吗?是的,但这是ViewData而不是param这是您可以在两个视图之间通信而不发回服务器的唯一方法(操作方法),因为您的局部视图必须动态使用控制器和操作名称,所以唯一的方法是将它们作为ViewData传递,以便局部视图可以使用它们。我猜另一种方法是直接将参数传递给控制器操作,如new{pageCount=120,Controller=“List”,action=“Index”}但你是从哪里把这些从父母传给孩子的呢?
@{
 var action = ViewData["ActionName"];
var controller = ViewData["ControllerName"];
}

@Html.Action(@action, @controller, new {pageCount = 120})