• 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コントロールが動くか、不思議ですか?
    その種明かしは次回に、、、たぶんもうひとつ記事書くと思います(^^;

    投稿日時 01-07-2009 02:00 投稿者 ono | コメント数:1
    カテゴリ: ,
  • Microsoft .NET RIA Services の概要

    Microsoft .NET RIA Services の概要 - May 2009 Preview

    .NET RIA Servicesの概要が日本語訳されています。
    ロードマップが最近公開されていて、この技術が実際に使えるようになるのはVS2010や.NET 4.0と同時期になるようですが、気になる技術であることには違いないので勉強しておこうかと。

    投稿日時 29-06-2009 07:26 投稿者 ono | コメント数:0
    カテゴリ:
  • ASP.NET MVCプロジェクトとWebフォームページ

    このエントリは実験的なもので、実用的な意味はあまりありません。それを前提にお読みください(w

    ASP.NET MVCプロジェクトは一見従来のWebフォームのプロジェクトと何もかも違っているように見えます。
    でも、実際にはASP.NET MVCプロジェクトの中でWebフォームページも使えるんだ、ということを確認してみましょう。

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

    MVCプロジェクトの作成

    できたプロジェクトに「新しい項目の追加」でWebフォームを追加します。
    こんなふうにWebフォームがプロジェクトに追加されると思います。

    MVCプロジェクトにWebForm1.aspxを追加

    追加したWebフォームにテキストボックス、ボタン、ラベルを追加します。

    コントロールを追加

    ボタンをダブルクリックして、コードビハインドにボタンをクリックしたらテキストボックスの中身をラベルに表示するプログラムを記述します。
    まぁ、よくあるHello Worldプログラムです。

    protected void Button1_Click(object sender, EventArgs e)
    {
        Label1.Text = TextBox1.Text;
    }

    これで動かしてみてもいいんですけど、きちんとMVCプロジェクトも動いている中でWebフォームが動くことを確認するために、マスターページ(/View/Shared/Site.Master)にWebFormへのリンクを記述してみましょう。

    リンクの挿入

    さて、これでデバッグを開始すると、MVCプロジェクトのいつものサンプルのトップページが表示されます。
    ここで、WebFormへのリンクをクリックします。

    サンプルのトップページからリンクをクリック

    作成したWebフォームが表示されますから、ここでテキストボックスに適当な文字を入力してボタンをクリックし、動作に問題ないことを確認しましょう。

    ボタンクリック前 ボタンクリック後

    まぁ、ここで気になるのは、ルーティングとの兼ね合いで問題はでないの?というところあたりでしょうけど、ルーティングはリクエストされたURLに対するファイルの存在チェックをしてまして、ファイルが存在する場合はそちらが優先され、ルーティングの設定は無視されます。
    なので、Webフォームのポストバックで問題がでることはありません。

    あと、WebフォームからMVCプロジェクト内のマスターページを利用する(その場合、新しい項目の追加でWebコンテンツフォームを選択する必要がある)ことはできなくはないですが、HTMLヘルパーの動作でエラーになります。
    HTMLヘルパーを利用しないようなマスターページを別に作るほうがよさそうです。

    ASP.NET MVCプロジェクトの中でどうしてもWebフォームが必要になる、という状況は考えにくいですが、混在自体は可能ということは覚えておいてもいいと思います。

    投稿日時 29-06-2009 04:55 投稿者 ono | コメント数:1
    カテゴリ: ,
  • 川俣さんのC#本がいい!


    まだ半分ぐらいしか読んでないですが。
    この本はいい。著者の立ち位置がはっきりしていて、ぶれがないので読んでて気持ちいい。
    C#が好きな人はぜひ読んでおくべき!

    ただ、通常はFrameworkのクラスの糊付けとしてコードを書いてることが多いので、あまりここまで意識しないんだよなぁ(w

    でも知ってると知らないとでは全然違うので、きちんと自分のものにしておきたいとは思う。

    投稿日時 23-06-2009 10:14 投稿者 ono | コメント数:0
    カテゴリ:
  • NerdDinnerチュートリアルの日本語訳公開開始

    NerdDinnerチュートリアル

    @ITでNerdDinnerチュートリアルの日本語訳の公開がはじまりましたね。
    今はイントロからStep2まで公開されてます。
    とりあえずASP.NET MVCに興味がある人は見てみること。

    これ、全部で160ページぐらいの分量あるんですよね。
    Chicaちゃんすげーよ(w

    投稿日時 29-05-2009 10:14 投稿者 ono | コメント数:0
    カテゴリ:
  • ASP.NET 4.0に関するPPT等

    Back from Tech-ed India

    インドで行われたTech Edで使われたPPTがダウンロードできます。
    ASP.NET 4.0で何が変わるのか、を概観するにはよい資料ではないかと思います。

    投稿日時 28-05-2009 12:08 投稿者 ono | コメント数:0
    カテゴリ:
  • Visual Studio 2010 Beta 1(英語版)一般公開

    Visual Studio 2010 and .NET Framework 4 Beta 1

    Visual Studio 2010 Beta 1(英語版)がダウンロードセンターからダウンロードできるようになっています。
    Professional版だけでなくTeam Suiteとかも選べますね。

    上記ページ内のリンクからWalkthroughsをたどったり、Training Kitをダウンロードしたりできるようになってます。
    各種ドキュメントもすでにオンラインで確認できますね。
    ものすごい情報量です。。。

    日本語版ももう少しでできあがるらしいですが、そっちも一般公開されるのかな?

    #そしてドキュメントは。。。

    投稿日時 21-05-2009 07:35 投稿者 ono | コメント数:0
    カテゴリ:
  • Silverlightカレンダーコントロールに祝日表示

    How to customize holiday appearance in the Silverlight Calendar [Jason Cooke]

    こんな方法があるんですねぇ。
    おもしろいなぁ。

    投稿日時 19-05-2009 01:22 投稿者 ono | コメント数:0
    カテゴリ:
  • 入門者から中級者になるにはどうすればいい?

    システム開発の入門者から中級者にステップアップするための10のティップス

    よくまとまってるし、この意見には全面的に賛成できます。
    項目だけ抜き出しておくと、次のようになってます。

    1. 新たなプログラミング言語を学習する
    2. 検索を行うための高度な技術や戦術、戦略を学ぶ
    3. 他者を助ける
    4. 根気よく学習し続ける
    5. 人の言うことを鵜呑みにしない
    6. いくつかの先進的アイデアを徹底的に掘り下げて学習する
    7. あなたの分野を支える基本的な理論を学ぶ
    8. 上級開発者のコードを読む
    9. 良い習慣を身に付ける
    10. 楽しむ

    個人的には、3、5、7、10が特に重要かなと思います。
    みなさんはどう思いますか?

    投稿日時 19-05-2009 12:56 投稿者 ono | コメント数:0
    カテゴリ:
  • マシンキーの生成画面

    IIS 7 Tip # 10 You can generate machine keys from the IIS manager

    たけはらさんのBlog経由の情報。
    IIS7の管理ツールからマシンキーの生成ができるんですね。

    サイト管理画面

    キー生成画面

    それほど頻繁に使う機能ではないと思いますが、Webファームの環境ではこのキーを合わせる必要があります。

    #たしか、ViewStateの暗号/復号化とかで使われてたはず。

    そういうとき、独自にキーを生成するのが面倒だなぁ、って思ってたんですよ。
    これで簡単に必要なキーの生成ができますね。

    投稿日時 14-05-2009 06:33 投稿者 ono | コメント数:0
    カテゴリ:
  • Ajax Control Toolkitの最新版

    New release of the Ajax Control Toolkit

    最近Control Toolkitをみてなかったんですが、たまにアップデートされてるんですね。
    で、今回5月13日付けで最新版がでたみたいです。

    それにしても、コンボボックスやHTMLエディタですか。。。
    HTMLエディタはさすがに画像関係まではサポートしていないみたいですけど。
    うーん、使うかどうか別として、見てはおかないとなぁ。。。

    投稿日時 14-05-2009 05:51 投稿者 ono | コメント数:0
    カテゴリ:
  • .NET RIA Services Previewのアップデート

    .NET RIA Services May 2009 Preview

    .NET RIA Servicesのプレビュー版がアップデートされ、提供されています
    サンプル等もcode.msdnで公開されてますね。
    サンプル動かしてみるとなんかいろいろわかりそうだ。

    投稿日時 13-05-2009 11:28 投稿者 ono | コメント数:2
    カテゴリ:
  • Dynamic Data Preview 4がリリース

    Dynamic Data Preview 4 Released

    Dynamic Dataのプレビュー版のバージョンがあがっています。
    なにか技術情報があがってくるのは来週はじまるアメリカでのTechEdで、だと思ってたんですが、それより先にでましたね。

    このプレビューでGridView等にEnableDynamicDataというメソッドが追加になっているようです。
    まあ、実際Dynamic Dataはルーティングと無関係に使えるようになっているんですが、そのあたりの実装を楽にしてくれるみたいです。

    投稿日時 07-05-2009 06:42 投稿者 ono | コメント数:0
    カテゴリ:
  • ASP.NET MVC でルーティングハンドラを利用する

    IRouteHandler in ASP.NET MVC

    ASP.NET MVCで独自のルーティングハンドラを実装して利用するサンプルです。
    って、その内容はまだしっかりみてないんですが、それより api.hostip.info というサイトでIPアドレスがどの国に属するかを取得できる、ってことにびっくりです(w
    あと、エラーの扱いも面白いですね。
    ちゃんと読もっと。

    投稿日時 28-04-2009 07:02 投稿者 ono | コメント数:0
    カテゴリ:
  • フレンドリーURLをサポートしたCassini

    Cassini: Support for Friendly URLs / Routing

    Cassini って、まだあったんだ(^^;
    Cassini気にいってたんだよなぁ。
    下記の記事を書いたのは、、、をを、もう5年近くも前じゃないですか!

    CD-ROMから起動できるWebアプリケーション環境の構築

    いまさら使うことはほとんどないと思いますけど、なつかしかったのでご紹介。

    投稿日時 24-04-2009 04:10 投稿者 ono | コメント数:0
    カテゴリ:
もっと見る 次のページ »
SkinName:iroha_Blog2
Powered by Community Server, by Telligent Systems