15

私が要点を理解していない可能性は十分にありますが、ASP.NET MVC の HTML ヘルパーがどのように役立つのか、まったく理解できません。ここにサンプルがあります: -

HTML:

<a href="ActionName" target="_blank">Click Me</a>

HTML ヘルパー:

<%= Html.ActionLink("Click me", "ActionName", null, new {target="blank"}) %>

私の目は HTML をより簡単に読み取れるようになり、HTML ヘルパーを使用するのは直感に反するように思えます。

次の引数を見てください。

  • 多くの人 (初心者でも) は、HTML の読み方を知っています。HTML ヘルパーの構文は、簡単に混乱する可能性があります。
  • 多くの場合、HTML の「ヘルパー」を記述するためにさらにタイピングを行う必要があり、その後で実際の HTML を記述する必要があります。
  • とにかく、HTML ヘルパーは実際の HTML を吐き出すので、HTML を直接記述してみませんか?
  • HTML を記述すると、構文と標準をより詳細に制御できます。必要な HTML 標準に準拠させることができます。

私が理解していない特別な説得力のある理由はありますか (私は MVC を独学で学んでおり、ギャップがある可能性があるため)、HTML ヘルパーを優先したいと思わせる理由はありますか?

それとも単なるコードノイズですか?

4

4 に答える 4

7

さらに良いことに、MvcContrib を使用して、エラーが発生しやすい "魔法の文字列" を捨てて、ラムダに置き換えます。

<%= Html.ActionLink<MyController>(x => x.ActionName() ,"Click me",new {target="blank"}) %>
于 2009-08-29T04:10:46.410 に答える
0

実際のところ、両者に大きな違いはありません

<a href="ActionName" target="_blank">Click Me</a>

<%= Html.ActionLink("Click me", "ActionName", null, new {target="blank"}) %>

どちらの場合も、ハードコーディングしているためです (最初の URL、後者のアクション名)。

そのため、リンク用の特定のヘルパー メソッドを作成してから、

<%= Html.LinkSomeAction("Click me") %>

このようにすれば、アクションの名前を変更するときに気が変わっても大丈夫です。また、アクション名やリンクのタイプミスを心配する必要もありません。

mxmissile によって提案されたソリューションも優れています。

于 2009-08-29T07:19:29.480 に答える