アーカイブ

Archive for 2009年7月

ASP.NET MVCプロジェクトとWebフォームコントロール

前回の記事以上に実験的な内容になっています。その点には注意してください。

ASP.NET MVCプロジェクトの中では通常Webフォームコントロールは使いません。
でも、「使えない」のか「使わない」のか気になったことはありませんか?
それを試してみようと思います。

まず、ASP.NET MVCプロジェクトを適当につくります。デフォルトの設定でいいでしょう。

サンプルとしてあらかじめ作られているHomeControllerクラスの中にTestメソッドを追加します。

public ActionResult Test()
{
    return View();
}

Testメソッド内で右クリックしてAdd View … を選択し、Testビューを追加します。

Testビューの追加

追加したTestビューにテキストボックス、ボタン、ラベルを貼り付けます。

ビューにWebコントロールを追加 

ボタンをダブルクリックし、テキストボックスの中身をラベルに表示するプログラムを記述します。
コードビハインドのファイルが存在しないので、インラインでコードを記述する感じになります。

インラインでコードを記述

マスターページ内にこのビューに対するリンクを追加します。

リンクの追加

デバッグを開始し、Testページへのリンクをクリックしてみましょう。

テストビューの表示

ここまではなんの問題もありません。
ここで、テキストボックスになにか入力してボタンをクリックすると

エラー表示

エラーが表示されます。
どうもマスターページ内で呼び出しているHtml.RenderPartialがエラーを返すようです。
原因がつかみきれていないのですが、とりあえずHtml.RenderPartialを呼び出しているところをコメントアウトし、そのままだとレイアウトが崩れるので適当な文字を表示するようにしてみます。

エラー箇所をコメントアウト

再度デバッグを開始します。
今度はボタンクリックが問題なく動作することが確認できるはずです。

テスト実行前 テスト結果

これでわかるように、ASP.NET MVCプロジェクトの中でもWebコントロールを使うことは可能です。
ただ、MVCプロジェクトの中でWebコントロールを使うことに意味はないので、通常の開発でこんなことはしないようにしましょう。

なぜWebコントロールが動くか、不思議ですか?
その種明かしは次回に、、、たぶんもうひとつ記事書くと思います(^^;

カテゴリー:.NET, ASP.NET 備忘録