3

Release Candidate で MVC ユーザー コントロールを作成しようとしていますが、コード ビハインド ファイルを使用して作成する方法がわかりません。同じことが MVC ビュー ページにも当てはまります。

ベータ版でビューを作成すると、分離コードが生成されます...何か不足していますか?

4

5 に答える 5

4

ある種の背後にあるコードは、MVCフレームワークの目的を打ち破ります。機能はビューから分離しておく必要があります。MVCチームは、ページの背後にあるコードがこのイデオロギーに反していると感じたため、それらを削除しました。

コントロールを作成するためのカスタムヘルパーメソッドを作成できます。また、MVCにビューコンポーネント(モノレール/キャッスル)があるかどうかはわかりませんが、それもオプションになる可能性があります。

于 2009-01-28T05:32:47.483 に答える
3

ScottGuのブログ投稿から:

*コードビハインドファイルのないビューフィードバックに基づいて、デフォルトでコードビハインドファイルがないようにビューテンプレートを変更しました。この変更は、MVCアプリケーション(純粋にレンダリングに関するものであり、レンダリングに関連しないコードを含まないことを目的としています)のビューの目的を強化するのに役立ち、ほとんどの人にとって、プロジェクト内の未使用のファイルを排除します。RCビルドでは、ジェネリックスを使用する基本クラスからビューテンプレートを継承するためのC#およびVB構文のサポートが追加されています。たとえば、以下では、これをEdit.aspxビューテンプレートで使用しています。その「継承」属性は、ViewPageタイプから派生しています。

コードビハインドファイルを使用しないことの優れた利点の1つは、ビューテンプレートファイルをプロジェクトに追加すると、すぐにインテリセンスが得られることです。以前のビルドでは、ビュー内にコードインテリセンスを取得するために、ビューを作成した直後にビルド/コンパイルを実行する必要がありました。RCを使用すると、ビューを追加してすぐに編集するワークフローがコンパイル不要になり、はるかにシームレスになります。

重要:以前のビルドで作成されたASP.NET MVCプロジェクトをアップグレードする場合は、リリースノートの手順に従ってください。\Viewsディレクトリの下のweb.configファイルをいくつかの設定で更新する必要があります。上記のジェネリックベースの構文が機能します。*

于 2009-01-28T05:45:13.840 に答える
3

ここでこの質問に答えました:

コード ビハインド ページを部分ビューに追加する方法

これは特にトリッキーではなかったようで、非常に実行可能です

Ok。

最初: .cs (つまり、view.ascx.cs) の規則でクラス ファイルを追加します。

2 番目:「using System.Web.Mvc;」を追加します。クラスへ

3 番目: クラスを「ViewUserControl<>」から継承するように変更します。

4 番目: ビューのヘッダーに以下を追加します。

CodeBehind="View.ascx.cs" Inherits="Project.Views.Shared.View"

5 番目: ソリューションからファイルをコピーし、ドラッグして 2 つを再度関連付けます。

注: これを通常の MVC ビューで使用するには、「ViewPage」からクラスを継承する必要があります。

于 2009-03-25T07:08:02.387 に答える
1

ASP.Net-mvcの全体的なアイデアは、ファイルの背後にあるコードを取り除くことでした...そのため、asp Webコントロールはほとんど機能しなかったとしても問題ではありませんでしたが、背後にあるコードを取り除くという変更には、別のプログラミングが付属していますstyle ..アイデアは、コードビハインドファイルがEVILであるということです。

http://stevesmithblog.com/blog/codebehind-files-in-asp-net-mvc-are-evil/

全体的なアイデアは、asp.etWebページではなくasp.Net-mvcを使用していることを人々に覚えてもらうことです。このリンクを見てください、それはそれをもう少しよく説明します:

http://blog.lozanotek.com/archive/2008/10/20/Visual_Studio_Templates_for_MVC_Views_without_Codebehind_Files.aspx

于 2009-01-28T05:42:57.650 に答える
0

このチュートリアルはあなたが求めているものだと思いますが、実際には何が欲しいのかわかりません。

于 2009-01-28T05:25:29.057 に答える