3

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

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

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

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

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

4

1 回答 1

3

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

于 2012-03-21T07:21:12.157 回答