簡體   English   中英

帶路由名稱的Html.RenderAction

[英]Html.RenderAction with Route Name

我試圖在控制器操作中使用Route屬性命名(例如: [Route(Name = "Abc123")] ),同樣能夠通過Html.RenderAction調用它,但看起來這不支持路由名稱。 我認為這是因為路由名稱僅保留給通過HTTP請求的路由,而不是直接調用,但對MVC來說有點新,所以我很茫然。

我完全使用MVC屬性路由,否則我沒有配置路由。 似乎我必須定義路由名稱,並且路由名稱必須與操作方法名稱匹配。 但是,在這樣做時,當我嘗試命名多個Index時,我會收到命名沖突。

我基本上試圖支持多個局部視圖,每個視圖都有自己的控制器,在我的網站上充當插件/小部件。 理想情況下,每個人都會有一個名為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(“關於”,“家”);}

它會工作正常。

您應該可以使用屬性路由執行您要執行的操作。 如果您嘗試渲染局部視圖,則應使用RenderPartial而不是RenderAction。

你是在區域之間做這個嗎? 我相信有一些問題可以讓它正常工作。

您能否發布示例Controller代碼和RouteConfig?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM