【问题标题】:Creating an ASP.Net MVC3 ActionLink with an area使用区域创建 ASP.Net MVC3 ActionLink
【发布时间】:2012-03-21 06:29:45
【问题描述】:

ASP.Net MVC3 很酷,但我有这个问题更多是出于好奇而不是编程问题。假设我有一个名为“Cosmos”的区域,其中有一个带有“Index”操作的“StarController”。

现在,如果我必须为此创建一个操作链接,这两个语句有什么区别?

Html.ActionLink("Stars", "Index", "Stars", new { area = "Cosmos" }, null)

Html.ActionLink("Stars", "Index", "Cosmos/Stars")

从外观上看,它们完全一样。如果它确实做同样的事情,那么匿名类型 { area = "Cosmos" } 有什么用?

【问题讨论】:

    标签: asp.net-mvc html.actionlink asp.net-mvc-3-areas


    【解决方案1】:

    在第二个示例中,您将 controllerName 参数设置为 Cosmos/Stars,这是错误的。不能以这种方式调用控制器。它会生成正确的结果,因为助手只是按原样使用参数,但您已经假设您的路线将具有某种风格。在您更改路由定义的那一刻,此链接将继续生成相同的标记,这可能是错误的。在第一个示例中,您不再依赖任何硬编码的 url 模式。无论您的路线和区域如何配置,它都会生成正确的 url。

    【讨论】:

      猜你喜欢
      • 2011-04-14
      • 2010-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-12
      • 2012-01-17
      相关资源
      最近更新 更多