- ベストアンサー
【ASP.NET MVC】フォームヘルパーの是非
いつも大変にお世話になっています。 今回も例によってASP.NET MVCの質問です。 ASP.NET MVCでは、Htmlヘルパーを使用してビューを記述するのが常識かと思います。 例) @Html.Textbox("name", Model.name) 今回、デザイナが加わる仕事で、完成後にデザイナ側でフォーム訂正が必要になることが予想されます。 またその際、デザイナから「できるだけ独自仕様(Lazorのこと?)のテンプレートを使用しないように」とのお達しがあったため、苦慮しております。 質問です。 Htmlフォームヘルパーを使わずに、純粋なHTML記述を行った場合、どのような支障が考えられますか? 要件: @Html.Textbox("name", Model.name) と書かずに。 <input type="text" id="name" name="name" /> と(HTML展開後の文法で)書く場合の違いを知りたい です。同じ動作をするのでしょうか?また、違いの程度は? です。なにとぞよろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ヘルパーといっても結局はHTMLになる、ということをまずは意識してください。 なのでヘルパーを使わずにHTMLを記述した場合、普通に入力した内容を受け取るぶんには問題はでないでしょうね。 ただ、入力内容にエラーがあって、エラーメッセージを表示する必要があったら、、、さあどうします? HTMLしかなかったら、、、どうエラーを埋め込んでいくのか、また入力された内容はどうするのか、とか考えないといけないですね。 ヘルパーを使っている場合はこのあたりをできるだけうまく(プログラムを少なくする形で)フォローしてくれます。 > 今回、デザイナが加わる仕事で、完成後にデザイナ側でフォーム訂正が必要になることが予想されます。 たぶん、ここの考え方が逆です。 まずデザイナ側に先にHTMLを組んでもらいましょう。 プログラム側はできあがったHTMLにヘルパーを組み込むということを考えて作業をすすめていきましょう。 このような形でプログラム側とデザイン側の連携がやりやすいのがMVCの良い点の一つだと思います。
その他の回答 (1)
- onos
- ベストアンサー率81% (127/155)
ヘルパー使わないと、、、どうかな。 エラーや値表示の件で作業工数が増えるだろうことは予測できます。 あと、全体の統一感をだすのに、、、なんだっけ、WebFormでいうマスターページみたいな仕組みがありますがそういうのも使えませんね。 動的なものでなければ問題ないでしょうけど、、、そしたらMVC使う意味なんてないし。 内容変更のときとかフォーム追加のときとかも、デザイナにcshtml渡す必要とかなくて、デザイナが作成したHTMLもらってそれに合わせて修正だけすればいいと思うんですが。 それじゃだめなんでしょか。
お礼
onos様、何度もありがとうございます。 もうこの件は完全なデザイン先行で、自分ではどうすることもできません。 HTMLヘルパーは極力使わない、という規約です。 @Layoutも、@Url.Contentも、@Html.TextboxもすべてNGということです。 内容変更は随時、デザイン側がcshtmlをダイレクトに直すということで、そのため、Dreamweaver等でプレビューが崩れない環境にしてほしいということです。 今回はありがとうございました。 ご意見によれば、フォーム検証に問題が出そうなので、jQuery.Validationや、jQuery.Formを勉強します。 でも、ASP.NET MVCに限らず、Symphonyなどのフレームワークでも、確かにビジュアルエディタのことは何も考えられていないので、凝ったフォームになってくるとデザイン修正が難しい面はあります。 そういうデザイナさんの立場も多少はわかるのですが。。
補足
> まずデザイナ側に先にHTMLを組んでもらいましょう。 すいません。書き方が悪かったです。 先にデザイナがHTMLを組むのですが、その内容が変更されたり、フォームが追加になったりする予定で、その過程でRazorが敬遠されています。 (aspx系統のヘルパーも止めてくれと言われています) エラー表示や値表示以外には、何か支障は出るでしょうか?