MVC3でのHtml.BeginFormの使用方法は何ですか? なぜフォームタグを直接追加できるのか、このHTMLヘルパーは機能を追加するのか、単純なフォームタグではできないことをするのでしょうか。MVC3でのHtml.BeginFormの使用方法
答えて
Html.BeginForm
ヘルパーメソッドには、couple overloadsが含まれています。この目的は、ルーティングされたフォームの書き出しを容易にすることです。 MVCの構造を認識し、コントローラとアクションをターゲットにしていることを確認します。
<form method="post" action="@Url.Action(...)">
::それ以上構文糖のほんの少しだ
ASP.NET MVCフレームワークはビューでHTMLをレンダリングする簡単な方法を提供するヘルパーメソッドが含まれています。
もちろん、誰もあなたを使用させていません。それは好みの問題です。実際、MVCの初期には、多くのWebForms開発者がサーバーコントロールから新しい自由を祝いました。<asp:TextBox>
など、手作業ですべてを書くことを主張していました。
フォームフィールドのヘルパーを使用することは、フォームの検証などのことを認識していることを強くお勧めします。 Html.BeginForm
はちょうどあなたのフォームを起動して終了する一貫した方法を提供します:
@using(Html.BeginForm())
{
@Html.LabelFor(...)
@Html.EditorFor(...)
}
Html.BeginForm
は、あなたがC#using
文でそれをラップすることができ、IDisposable
オブジェクトを返します。 using
が終了すると、自動的にHtml.EndForm()
が処理されます。 Html.EndForm
戻りvoid
のでカミソリから呼び出すことが少し不便です:
@Html.BeginForm()
<formStuff>
@{Html.EndForm();}
シンプル@Html.EndForm()
はすなわち、時間のコンパイルエラー、Write(Html.EndForm()) -> Write(void)
になります。
:あなたはusing
句でそれを置くことができ、それがするように、それは、使い捨てであるオブジェクトを返します
- を以下のためにformタグを閉じます、それは
フォームアクション用のURLを計算し、単純な形で行うことができない何かを
最後に、ヘルパーメソッドの呼び出しはすべて純粋なHTMLに変換されるため、Html.BeginFormが行うことはできません。<form>
タグを直接使用して行うことはできません。
Html.BeginForm
は純粋にヘルパーメソッドです。
ヘルパーをまったく持つ目的は何ですか? (修辞的な質問)あなたは手動でもすべての入力をタイプすることができますが、ヘルパー...まあ、時々助けてください。
すべてタグを付けます。はい、あなたは手動で行うこともできますし、もう少し空想することができ、次の操作を行います。
@using(Html.BeginForm())
{
}
これは、同様にあなたのためのformタグを閉じます。したがって、すべての入力を括弧の中に入れておけば、フォームタグを閉じるのを心配する必要はありません。
ご質問は*役に立つと助かります。タグを閉じることを忘れることは、中括弧を閉じることを忘れることと同じくらい可能性があります - その点は何ですか? – John
優秀な質問、私はそれについてかなり疑問に思った。
私は間違っているかもしれないが、ここに私の推測では、(より良い男が私を補正してもよい)です。
MVCの初期の頃は、何のかみそりはありませんでした。
C#/ VBとhtmlを切り替えるのは構文が賢明ではなかったので、それらの境界を最小限に抑えるようにプッシュがありました。
フォームを作成するときに、純粋にC#/ VB側で完全なフォームを手動で作成することなく、HTMLの周囲の世界に1つの境界線を持たせることが有益でした。
プログラマーは、しばしば、他の場所から物事を行うスタイルをコピーするので、それらのヘルパーを使用する実践は、かみそりの出現によってその利益が消えても、持続しています。
- 1. MVC3のHtml.BeginFormにクエリパラメータとクラス属性を渡す方法は?
- 2. Html.BeginForm()を使用して要素のIDを取得する方法
- 3. MVC3で複数のモデルを使用する方法asp
- 4. GETメソッドを使用したHtml.BeginForm()
- 5. Razor Generatorを使用したHtml.BeginForm()
- 6. ASP.NET MVC Html.BeginFormで2つの入力を使用
- 7. ASP.netでADO.net(SqlConnection)を使用する方法MVC3
- 8. MVC3をWCF接続で使用する方法
- 9. MVC3でauthorize属性を使用する方法
- 10. Mvc3 + Razorでラジオボタンを使用する方法
- 11. ASPNET MVC3でViewModelを使用する方法
- 12. セッションをAsp.Net MVC3で使用する方法
- 13. Html.BeginFormの中のAjax.BeginForm
- 14. @ Html.BeginFormの匿名メソッド
- 15. ASP.NET MVC3でWindows認証でカスタムロールベースの認証を使用する方法は?
- 16. Html.BeginForm()でDELETEフォームメソッドを使用しますか?
- 17. Html.BeginFormを使用しないで検証を行うASP.NET MVCフォーム
- 18. dhtmlxScheduler - ASP.NET MVC3でのロールの使用
- 19. MVC3で依存関係フィールドの検証を使用する方法
- 20. C#MVC3 ViewBag、foreachステートメント内でビューのリストプロパティを使用する方法は?
- 21. MVC3のルーティングを使用
- 22. MVC3で@ Html.HiddenForを使用
- 23. SquishItをMVC3で使用
- 24. MVC3プロジェクトでApicontrollersを使用
- 25. MVC3ページ名にダッシュを使用する方法
- 26. Html.BeginFormブロックのDropDownListのデフォルト値
- 27. MVC3を使用したレポートビューアでのポストバック
- 28. T4MVCとHtml.BeginForm
- 29. ASP.NET MVC3使用エリア
- 30. Html.BeginFormの奇妙な動作
ここで意味するのは、IDisposableオブジェクトをラップするasp.netのconstructを使用することですか? – Charu
私は答えに段落を追加しました。 – Kivin