甚至名称HtmlHelper
也应该已经提示您是否应该使用它。你需要帮忙吗?如果没有,只需从头开始编写 html。html 是如何生成的并不重要:从头开始或使用 html 助手。重要的是它是使用正确的输入名称生成的,以便模型绑定器可以将这些输入绑定到模型。
例如,假设您有以下模型将被传递给视图并在 POST 上接收:
public class SomeModel
{
public Customer Customer { get; set; }
}
public class Customer
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
为了确保您的输入将绑定到模型,您需要在页面上输入三个输入:
<input type="hidden" id="whatever" name="Customer.Id" />
<input type="text" id="whatever" name="Customer.FirstName" />
<input type="text" id="whatever" name="Customer.LastName" />
拥有这个 html 标记将确保正确的模型思维。但是,您可以使用 HtmlHelpers 来实现此标记,这要容易得多:
@Html.HiddenFor(m => m.Customer.Id)
@Html.TextBoxFor(m => m.Customer.FirstName)
@Html.TextBoxFor(m => m.Customer.LastName)
这不仅会name
在每个输入上为您提供适当的属性,而且还会相应地分配id
属性,因此您不必自己做所有这些。
看来第二篇文章的作者建议不要使用 HtmlHelpers 有两个原因:
- 学习目的:我假设说“Web 开发人员必须习惯于编写 HTML”,他的意思是开发人员应该确切地知道正确的模型绑定需要什么 html 标记。
- 对黑盒的恐惧:似乎作者害怕使用 HtmlHelpers 会生成不正确的 html 标记,或者他只是不知道会生成什么 html。
我不同意他的说法:“HtmlHelpers 的唯一生存理由就是将 HTML 隐藏起来”。我宁愿说“HtmlHelpers,他们唯一的生存理由就是帮助编写 Html 标记”
摘要:
HtmlHelpers帮助您编写正确的 html 标记,这就是我建议您使用它的原因。