从子操作中获取父操作

时间:2014-02-05 00:12:29

标签: asp.net-mvc-4 razor

我正在创建寻呼机局部视图,它从父视图中获取一个页面计数参数,并在视图中呈现分页数字

//List.cshtml

bla bla data here
@Html.Action("Index", "Pager", new {pageCount = 120})

现在在寻呼机内部视图中,我想用新的页码重复父动作...我想在我的局部视图中使用页面按钮,只需使用欣赏页面参数重复父动作,但是当我打电话时{{1} MVC将null作为局部视图的动作而不是父视图,并抛出不能直接调用部分动作的异常

Url.Action(null, new {page = curPage-1}

我的意思是,我希望<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

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

1 个答案:

答案 0 :(得分:1)

在父视图中使用

@{
 ViewData["ActionName"] = "MyACtion";
 ViewData["ControllerName"] = "MyControllerACtion";
}

然后调用您的部分视图。 在这里,您可以从ViewData

中检索值

在局部视图内

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

OR

@{
 var action = ViewData["ActionName"];
var controller = ViewData["ControllerName"];
}

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