为什么将硬编码URL字符串转换为MVC应用程序是一个坏主意?(或者是吗?)

rob*_*sta 3 model-view-controller asp.net-mvc

对这个问题的评论中,菲尔提到了这一点

将URL字符串硬编码到MVC应用程序中是个坏主意.帮手是有原因的

是这样吗?如果是这样,为什么?

arc*_*hil 5

Url生成是应用程序的global.asax中路由配置的结果.当您使用ActionLink等帮助程序时,它们会检查路由配置并相应地生成路由.

如果稍后更改路由配置,或将应用程序安装到虚拟目录,则整个应用程序中帮助程序生成的URL会动态更改,因此您不必手动检查和更改每个硬编码的URL字符串,并且您的应用程序不太可能打破.

如果要标记锚点,可以使用UrlHelper.Action方法.在内部所有依赖于URL生成的帮助程序,都使用此方法.

<a href="@Url.Action("Logon", "Account")">logon<a>
Run Code Online (Sandbox Code Playgroud)