ASP.NET MVCプロジェクトとWebフォームコントロール
前回の記事以上に実験的な内容になっています。その点には注意してください。
ASP.NET MVCプロジェクトの中では通常Webフォームコントロールは使いません。
でも、「使えない」のか「使わない」のか気になったことはありませんか?
それを試してみようと思います。
まず、ASP.NET MVCプロジェクトを適当につくります。デフォルトの設定でいいでしょう。
サンプルとしてあらかじめ作られているHomeControllerクラスの中にTestメソッドを追加します。
public ActionResult Test()
{
return View();
}
Testメソッド内で右クリックしてAdd View … を選択し、Testビューを追加します。
追加したTestビューにテキストボックス、ボタン、ラベルを貼り付けます。
ボタンをダブルクリックし、テキストボックスの中身をラベルに表示するプログラムを記述します。
コードビハインドのファイルが存在しないので、インラインでコードを記述する感じになります。
マスターページ内にこのビューに対するリンクを追加します。
デバッグを開始し、Testページへのリンクをクリックしてみましょう。
ここまではなんの問題もありません。
ここで、テキストボックスになにか入力してボタンをクリックすると
エラーが表示されます。
どうもマスターページ内で呼び出しているHtml.RenderPartialがエラーを返すようです。
原因がつかみきれていないのですが、とりあえずHtml.RenderPartialを呼び出しているところをコメントアウトし、そのままだとレイアウトが崩れるので適当な文字を表示するようにしてみます。
再度デバッグを開始します。
今度はボタンクリックが問題なく動作することが確認できるはずです。
これでわかるように、ASP.NET MVCプロジェクトの中でもWebコントロールを使うことは可能です。
ただ、MVCプロジェクトの中でWebコントロールを使うことに意味はないので、通常の開発でこんなことはしないようにしましょう。
なぜWebコントロールが動くか、不思議ですか?
その種明かしは次回に、、、たぶんもうひとつ記事書くと思います(^^;