gpt4 book ai didi

asp.net-mvc - ASP.NET MVC : get "Main-Controller" in RenderAction

转载 作者:行者123 更新时间:2023-12-04 14:37:08 27 4
gpt4 key购买 nike

如何在 RenderAction 中获得实际的“主 Controller ”?

例子:

我的路线:

{controller}/{action}

我的网址是:
页面/某个 Action
旅游/一些 Action
...

在我的 Site.Master 中,我做了一个 RenderAction:
<% Html.RenderAction("Index", "BreadCrumb"); %>

我的 BreadCrumbController Action 如下所示:
public ActionResult Index(string controller)
{

}

字符串 Controller 包含“BreadCrumb”(这是可以理解的,因为实际上我在 BreadCrumbController 中)。

获得“真实” Controller (例如页面或游览)的最佳方式是什么。

最佳答案

父 View / Controller 上下文

如果您使用 MVC 2 RC(不知道以前的版本),您可以通过 View 的上下文访问父 Controller ,在那里您将找到一个名为:

ViewContext ParentActionViewContext;

这是父 View 的上下文,并且还引用了启动 View 渲染的 Controller ...

路由

在我看来(从你的问题)你有任意数量的路由段的请求......在这种情况下,你有两个选择:
  • 使用贪婪参数定义您的路线,其中 actions在这种情况下,将捕获请求 URL 中的所有操作
    {controller}/{*actions}
  • 创建自定义 Route将处理您的自定义路由要求并填充 RouteData 的类如所须。

  • 第二个需要更多的工作和路由知识,但它将帮助您获得更多有关 Asp.net MVC 路由的知识。我过去做过,这是一个宝贵的教训。也是一种处理我的自定义路线要求的优雅方式。

    关于asp.net-mvc - ASP.NET MVC : get "Main-Controller" in RenderAction,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/867649/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com