我正在关注MoviesMVC here的MVC教程,作者说了以下内容:
public string Index()
{
return "This is my <b>default</b> action...";
}
目前,Index方法返回一个带有消息的字符串 在控制器类中进行硬编码。更改Index方法以返回 一个View对象,如下面的代码所示:
public ActionResult Index()
{
return View();
}
好吧,好吧,所以他改变了功能的签名。但为什么他称之为Hardcoded?
答案 0 :(得分:6)
当您硬代码时,它通常指的是诸如字符串值和其他设置之类的东西,它们是编译代码的一部分。
简而言之,如果您想要更改Index
方法返回的内容,则必须进行更改并重新编译。
另一种方法是使用配置文件进行设置,例如app.config和web.config文件。当涉及某些字符串(用作用户接口消息)时,您使用的资源文件也允许您存储多语言字符串。
这些文件允许您执行的操作是对应用程序进行更改,而无需重新编译所有内容。这是期望的(通常),因为:
在生产环境中工作时,通常会遇到可能解决用户标记问题的代码。如果您需要重新编译和重新部署以对文本消息进行更改(这可能是经常发生的事情,特别是在营销活动期间),必须重新编译代码以更改消息可能会导致不必要的更改或仍然发生的更改正在进行中。
某些客户可能拥有自己的营销人员,并希望授予他们访问某些网站页面的权限。如果他们可以随时改变文本,通常可以节省他们通过开发公司的时间,而通常会让客户感觉更快。
答案 1 :(得分:2)
什么意思是硬编码
当您在代码中编写内容并需要更改代码以更改值时,它将被称为硬代码。如果我们从数据库等任何来源加载内容,那么您不需要更改代码。有些内容可能会像列标题一样改变,然后必须用代码编写(硬编码)。
硬编码(也称为硬编码或硬编码)是指软件 嵌入可能的开发实践,也许只有在 回顾,直接视为输入或配置数据 程序或其他可执行对象的源代码,或者是固定的 格式化数据,而不是从外部获取数据 源程序或生成数据或格式化程序本身 给定的输入Reference
答案 2 :(得分:2)
硬编码是指您直接提供值而不是使用变量。变量可以在代码中的不同位置重复使用。所以最好不要硬编码。
建议使用View而不是直接提供字符串,因为它很容易本地化&amp;国际化。
此外,您不需要将代码重新编译为DLL。你只需上传视图(aspx,ascx,cshtml等),事情就开始了。
如果您不想使用视图,可以使用字符串资源并使用资源ID而不是硬编码。
答案 3 :(得分:1)
可以构建他/她自己的ViewEngine
并将其插入MVC管道中。这将允许仅在执行之后确定HTML内容。
当有人使用字符串对return语句进行编码时,不可能修改该方法返回的HTML内容,因为它不可更改。
答案 4 :(得分:1)
它只是意味着您正在打印结果或使用某个值,而不是从数据库或用户输入获取结果。
假设你正在使用这样的人名。 string personName = [从数据库获取值] string personName = [从用户输入获取值]
比没关系。
但是如果你像这样使用它
string personName =“Smit”
比你只是硬编码的价值。