gpt4 book ai didi

asp.net-mvc - 带有路由名称的 Html.RenderAction

转载 作者:行者123 更新时间:2023-12-02 01:37:31 35 4
gpt4 key购买 nike

我正在尝试在 Controller 操作中使用 Route 属性命名(例如:[Route(Name = "Abc123")]),并且同样能够通过 Html 调用它.RenderAction,但是貌似这个不支持路由名。我认为这是因为路由名称仅保留给通过 HTTP 请求的路由名称,而不是直接调用,但对 MVC 来说有些陌生,所以我不知所措。

我完全使用 MVC 属性路由,并且我没有配置其他路由。看来我必须定义路由名称,并且路由名称​​必须匹配 Action 方法名称。然而,在这样做的过程中,当我尝试命名多个 Index 时,我遇到了命名冲突。

我基本上是在尝试支持多个局部 View ,每个 View 都有自己的 Controller ,它们在我的网站上用作插件/小部件。所以理想情况下,每个人都有一个名为 Index 的操作。

关于如何保持相同的命名,您有什么建议吗?这使我可以调用 Html.RenderAction("Index", [ControllerName], [Model]) 而无需更改渲染名称。

最佳答案

您可以将属性路由与 Html.RenderAction 一起使用,只需确保属性中的操作名称是实际名称即可:

 [Route("Home/About")]
public ActionResult About()
{
ViewBag.Message = "Your application description page.";

return View();
}

在 HTML 中你可以有

@{Html.RenderAction("关于", "主页");}

它会很好地工作。

关于asp.net-mvc - 带有路由名称的 Html.RenderAction,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30382953/

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