查看 MVC 代码时,您经常会遇到如下代码片段:
return RedirectToAction("Index");
<li>@Html.ActionLink("Books", "Index", "Books")</li>
其中控制器名称、控制器操作名称或视图名称以硬编码字符串的形式提供。这是一种常见的做法,但这是一种好的做法吗?毕竟,如果您重命名控制器,而忘记重命名许多引用之一,您将得到一个运行时错误,而不是更喜欢的编译时错误。
您可以通过将静态 Name 属性添加到 BaseController 来缓解该问题,然后使用如下代码(操作名称会稍微难以完成)。
<li>@Html.ActionLink("Books", "Index", BooksController.Name)</li>
因此,这种硬编码应该被认为是一种较小的邪恶(而不是不使用 MVC)。还是人们开发了一些实践来解决它?