儿童行动的行动链接

时间:2012-01-15 01:42:17

标签: c# asp.net-mvc-3 action actionlink

我使用Html.Action方法调用了另一个视图。当用户单击操作链接时,我想使用参数在子视图内调用相同的操作。

当我编写此代码时,我收到以下错误消息:

Html.ActionLink("link", "Configure", new { id = 2 })
  

“配置”操作只能由子请求访问。

我该如何处理这个问题?

修改:我将尝试重新解释此问题:

我的父视图是ConfigureMethod.cshtml。我称之为儿童观点:

@Html.Action("Configure", "Payment");

它转到此控制器并在ConfigureMethod视图中返回actionresult(而不是partialview):

[ChildActionOnly]
public ActionResult Configure()
{

}

在配置视图中我创建了一个类似的动作链接:

Html.ActionLink("link", "Configure", new { id = x.Id })

应该转到这个控制器:

[ChildActionOnly]
public ActionResult Configure(int Id)
{

}

但是,当写入childonly属性时,它会出错。当我删除此属性时,它可以正常工作,但结果直接来自,而不是在ConfigureMethod视图中。

感谢。

1 个答案:

答案 0 :(得分:8)

我想指出两件事,

  1. 子操作仅用于呈现为PartialView。因此,使用[ChildActionOnly]属性进行装饰意味着,此操作必须返回PartialViewResult

  2. 当我们调用ActionLink()时,它将生成一个指向View not Partial View的链接。即使你不会用[ChildActionOnly]进行装饰,那么指向局部视图的链接也没有意义。

  3. 因此,首先要确定您是想要视图还是部分视图,然后进行相应的设计。