当寻找了MVC的代码,你会经常碰到代码片段如下图所示:是在MVC良好实践中硬编码控制器,视图和动作名称?
return RedirectToAction("Index");
<li>@Html.ActionLink("Books", "Index", "Books")</li>
,此处控制器名,控制器的动作名称或视图名称为硬编码字符串提供。这是一种常见的做法,但这是一种很好的做法吗?毕竟,如果您重命名控制器,并忘记重命名许多引用中的一个,您将得到运行时错误,而不是更偏好的编译时错误。
通过将静态Name属性添加到BaseController中,然后使用代码(如操作名称稍微难以完成),您可能会缓解该问题。
<li>@Html.ActionLink("Books", "Index", BooksController.Name)</li>
所以这是硬编码的东西,应该被认为是一个较小的邪恶(不使用MVC)。还是人们制定了一些做法来解决它?
从来没有遇到过这种情况,但我喜欢解决方法,并会使用它,如果它出现了。 – AgnosticDev
您正在寻找T4MVC。 – SLaks
确实。刚看了视频。你想让它成为答案吗? –