C# 行动链接到儿童行动

C# 行动链接到儿童行动,c#,asp.net-mvc-3,action,actionlink,C#,Asp.net Mvc 3,Action,Actionlink,我用Html.Action方法从另一个视图调用了一个视图。当用户单击操作链接时,我希望在子视图中使用参数调用相同的操作 当我编写此代码时,会收到以下错误消息: Html.ActionLink("link", "Configure", new { id = 2 }) 操作“配置”只能由子请求访问 我如何处理这个问题 编辑:我将尝试重新解释这个问题: 我的父视图是ConfigureMethod.cshtml。我这样称呼子视图: @Html.Action("Configure", "Payment"

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

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

Html.ActionLink("link", "Configure", new { id = 2 })
操作“配置”只能由子请求访问

我如何处理这个问题

编辑:我将尝试重新解释这个问题:

我的父视图是ConfigureMethod.cshtml。我这样称呼子视图:

@Html.Action("Configure", "Payment");
Html.ActionLink("link", "Configure", new { id = x.Id })
它转到该控制器并在ConfigureMethod视图中返回actionresult(而不是partialview):

[ChildActionOnly]
public ActionResult Configure()
{

}
在“配置视图”中,我创建了如下操作链接:

@Html.Action("Configure", "Payment");
Html.ActionLink("link", "Configure", new { id = x.Id })
它应该转到该控制器:

[ChildActionOnly]
public ActionResult Configure(int Id)
{

}
然而,当编写childonly属性时,它会给出错误。当我删除此属性时,它会工作,但结果会直接出现,而不是出现在ConfigureMethod视图中


谢谢。

我想指出两件事

  • 子操作只能作为PartialView呈现。因此,用
    [ChildActionOnly]
    属性修饰意味着,这是操作必须返回
    PartialViewResult

  • 当我们调用ActionLink()时,它将生成一个指向视图而不是局部视图的链接。即使您不会使用
    [ChildActionOnly]
    装饰,那么指向局部视图的链接也毫无意义


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

    我编辑了问题,以澄清与您的帖子有关的问题。@mavera,正如您提到的Html。ActionLink(..)将生成一个链接,单击链接它将重定向到另一个页面,因此该操作不应具有[ChildAction]属性。其中,as Html.Action(…)将返回父视图上下文中的视图/局部视图。[ChildAction]表示不能直接触发该操作,但必须在父上下文中使用。