子操作的Actionlink

本文关键字:Actionlink 操作 | 更新日期: 2023-09-27 18:20:24

我用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视图中。

谢谢。

子操作的Actionlink

我想指出两件事,

  1. 子动作仅表示为PartialView。所以用[ChildActionOnly]属性装饰意味着,这是动作必须返回PartialViewResult

  2. 当我们调用ActionLink()时,它将生成一个指向View而非Partial View的链接。即使不使用[ChildActionOnly]进行装饰,指向局部视图的链接也毫无意义。

因此,首先决定是要视图还是局部视图,然后进行相应的设计。