【问题标题】:RenderAction in Layout causing ActionLinks to Error布局中的 RenderAction 导致 ActionLinks 出错
【发布时间】:2016-07-01 20:43:42
【问题描述】:

我有一个局部视图,视图中有一个 ActionLink

@Html.ActionLink("User Admin Controller", "Index", "UserAdmin", new { Area = "Security" }, new { })

当我将 RenderAction Helper 放在页面视图上以呈现局部视图时,ActionLink 工作正常

@{Html.RenderAction("ApplicationMenu", "Layout"); }

但是,当我将渲染操作助手放入布局视图时,单击页面视图或布局中的操作链接会导致错误消息

路径“/Security/UserAdmin”的控制器未找到或未实现 IController。

似乎目标页面调用相同的 RenderAction 助手这一事实导致了问题???

感谢您的帮助

伯爵

【问题讨论】:

  • 请注意,model-view-controller 标签是针对有关模式的问题。 ASP.NET-MVC 实现有一个特定的标记。

标签: asp.net-mvc redirect razor actionlink renderaction


【解决方案1】:

我相信这与路由直接相关。我的家庭控制器在我所在的区域之外,其他所有东西都在我的区域之外。当我创建一个公共区域并将家庭控制器移入其中时,一切正常。我可能可以通过修改路由表来解决这个问题,但这完成了工作。

【讨论】:

    【解决方案2】:

    像这样编辑 ActionLink:

    @Html.ActionLink("User Admin Controller", "Index", "UserAdmin", new { Area = "" }, new { })
    

    使用区域时,您应该始终通过添加上述路由值来指定您在 ActionLinks 中调用的区域,如果链接在区域之外(如您的情况),只需为区域使用空参数。

    【讨论】:

    • @earlxtr 如果此答案对您有帮助,请点赞并接受此答案,以便人们知道这是正确答案。
    • 阿里,谢谢您的回复。正如您在问题中看到的那样,通过 actionlink 已经指定了一个区域。正如您从我的回答中看到的那样,它确实与路由有关,但可能需要修改路由表。
    猜你喜欢
    • 1970-01-01
    • 2012-04-27
    • 2021-03-31
    • 1970-01-01
    • 1970-01-01
    • 2016-01-17
    • 1970-01-01
    • 2023-04-02
    • 2014-03-10
    相关资源
    最近更新 更多