名前でさえ、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; }
}
入力がモデルにバインドされることを確認するには、ページに3つの入力が必要です。
<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
それに応じて属性が割り当てられるため、すべてを自分で行う必要はありません。
2番目の記事の著者は、次の2つの理由でHtmlHelpersを使用しないことを提案しているようです。
- 学習目的:「Web開発者はHTMLの記述に慣れている必要がある」と言うことで、開発者は適切なモデルバインディングに必要なHTMLマークアップを正確に知っている必要があると思います。
- ブラックボックスの恐れ:作成者は、HtmlHelpersを使用して不適切なhtmlマークアップが生成されることを恐れているか、どのhtmlが生成されるかを知らないようです。
私は彼の言い回しに同意しません:「生きる唯一の理由がHTMLを隠すことであるHtmlHelpers」。私はむしろ「生きる唯一の理由がHtmlマークアップを書くのを手伝うことであるHtmlHelpers」と言いたいです
概要:
HtmlHelpersは、適切なhtmlマークアップを作成するのに役立ちます。そのため、HtmlHelpersを使用することをお勧めします。