【问题标题】:HtmlHelper ActionLink omits area (asp.net mvc 4)HtmlHelper ActionLink 省略区域(asp.net mvc 4)
【发布时间】:2012-01-27 16:34:46
【问题描述】:

我在生成链接时遇到问题 我有一个名为“Administration”的区域,它还有一个 HomeController 作为根, 在母版页中

<li>@Html.ActionLink("Home", "Index", "Home")</li>
<li>@Html.ActionLink("Admin", "Index", "Home", new {area = "Administration"})</li>

我也继承了From Route,方法GetVirtualPath接受参数值 它省略了 area 键,只传递了控制器和动作。

我哪里做错了?

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-routing asp.net-mvc-4 asp.net-mvc-areas


    【解决方案1】:

    您使用了不正确的重载。你应该使用LinkExtensions.ActionLink Method (HtmlHelper, String, String, String, Object, Object)(注意最后一个参数)

    @Html.ActionLink("Admin", "Index", "Home", new {area = "Administration"}, null)
    

    【讨论】:

    • 谢谢archil,但在这种情况下,我得到的链接指向与第一个相同的url...如果手动去,路线是正确的
    【解决方案2】:
    <li>@Html.ActionLink("Home", "Index", "Home", new {area = ""}, null)</li>
    <li>@Html.ActionLink("Admin", "Index", "Home", new {area = "Administration"}, null)</li>
    

    【讨论】:

      【解决方案3】:

      问题解决了,在 DataTokens 中。我只为区域定义区域,而不是为根中的控制器定义区域。 现在它起作用了。谢谢!

      【讨论】:

      • 你能详细说明你的答案吗?刚开始弄乱 MVC 4 并面临同样的问题,但无法清楚地找出你的答案。感谢您提前提供任何帮助。
      猜你喜欢
      • 2011-04-14
      • 1970-01-01
      • 2023-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多