ASP.NET MVC 3 RC2がリリースされました

画像

ASP.NET MVC 3 RCのリリースから 1か月しか経過していませんが、開発チームはASP.NET MVC 3 RC2の新しいバージョンを発表する準備ができています。 このリリースは、最近リリースされたVisual Studio 2010 Service Pack 1 Betaとの互換性の問題を解決することを目的としているため、並外れたリリースと呼ぶことができます。

ただし、MVC 3 RC2では、Visual Studio 2010フィックスパックとの互換性に加えて、開発者が注意すべき多くの変更が導入されています。 以下は、これらの技術革新の説明です。

このリンクからASP.NET MVC 3 RC2パッケージをダウンロードできます。

プロジェクトテンプレートのjQuery、jQuery Validation、およびjQuery UIの更新バージョン


ASP.NET MVC 3 RCは、最新のjQuery 1.4.4、jQuery Validation 1.7、およびjQuery UI 1.8.6 JavaScriptライブラリを含むプロジェクトテンプレートを更新しました。

新しいAdditionalMetadataAttribute属性


MVC 3 RC2では、モデルに追加のカスタムメタデータを追加できる新しい属性AdditionalMetadataAttributeが追加されました。

image

将来、この追加のメタデータは、ビューデータのModelMetadata.AdditionalValuesコレクションで使用できるようになります。

Scaffold View Engineの改善


現在、メニュー項目「ビューの追加」からビューを生成する場合、以前の明示的なHtml.TextBoxForなどの代わりにHtml.EditorForメソッドが使用されます。 これにより、scaffoldメカニズムとデータ型のユーザー定義表現を使用してビューが自動的に作成されます。

さらに、自動生成されたビューには、クライアント検証に必要なJavaScriptライブラリへのリンクが含まれるようになりました。

ビューの自動生成は、編集のためにビューに表示する必要のないモデルのキーフィールド(KeyAttribute属性)の定義をサポートするようになりました。

ヘルパーメソッドHtml.Rawを追加


デフォルトでは、ASP.NET MVC 3ビューのモデル値のすべての出力はエスケープされます。 HTMLマークアップを含む可能性のあるモデルフィールド値の出力を簡素化するために、新しいヘルパーメソッドHtml.Rawが導入されました。

たとえば、次の値をビューに渡したい場合:

image

結果はエスケープされた文字列になります:

image

シールドを回避するために、新しいヘルパーメソッドを使用できます。

image

望ましい結果が得られます。

image

開発者は、非スクリーニングのユーザー入力値をページに表示する責任を理解する必要があります。 セキュリティ上の理由から、ユーザーがサイトに追加する値は常にエスケープする必要があります。

古い名前の名前を変更する


ASP.NET MVC 3 RC2では、多くのクラス名、プロパティ、および属性がユーザーの要求に応じて名前が変更されました。 新しい名前は、要素の本質をより正確に反映するように設計されています。

プロパティController.ViewModelおよびView(ビュー用)は、ViewBagに名前が変更されました。

これは最も重要な名前変更である必要があります。これは、ASP.NET MVC 3に基づいて以前に作成されたほとんどすべてのプロジェクトに影響します。 。 現在、これらの名前はViewBagという名前で統一されています。

ControllerStateStateAttribute属性をSessionStateAttributeに名前変更

セッション状態を制御するために使用される、以前に導入されたControllerSessionStateAttribute属性には、新しい短い名前SessionStateAttributeが与えられます。

RemoteAttribute属性のFieldsプロパティの名前がAdditionalFieldsに変更されました

検証に必要な追加プロパティを指定できるRemoteAttribute属性のFieldsプロパティは、より論理的なAdditionalFieldsに名前が変更されました。

SkipRequestValidationAttribute属性の名前がAllowHtmlAttributeに変更されました

特定のパラメーターのクエリ検証メカニズムを無効にできるSkipRequestValidationAttribute属性は、AllowHtmlAttributeに名前が変更されました。 新しい名前は、属性の目的を反映しています。

検証エラーを表示するときのHtml.ValidationMessageの動作が変更されました


以前は、Html.ValidationMessageメソッドは利用可能な最初の検証エラーメッセージを表示していました。 このようなメッセージは、発生した例外に対応するメッセージである場合があります。これは、フォームにエラーの説明を表示するのには適していません。

ASP.NET MVC 3 RC2では、Html.ValidationMessageメソッドが最初の「有用な」エラーメッセージを表示し、例外に関連するメッセージを無視します。 例外に関連付けられたメッセージ以外の有用なメッセージが利用できない場合、例外からのメッセージが使用されます。

訂正


ASP.NET MVC3は、フレームワークのさまざまな部分にいくつかの動作修正を導入しました。

@モデル宣言

@model宣言により、ページレイアウトに空白行が残されなくなりました

ヘルパーLabelForメソッド

このバグは、標準で必要なid値ではなく、要素の値名のfor属性に対してLabelForヘルパーメソッドが生成されたときに修正されました。

RenderActionメソッド

ASP.NET MVCの以前のバージョンでは、RenderActionメソッドに明示的なパラメーターを渡すことは無視され、代わりに、動作中のモデルのバインド中に現在のフォームパラメーターを使用しました。 ASP.NET MVC 3では、RenderActionメソッドで渡される明示的なパラメーターがフォームパラメーターより優先されます。

ビューエンジンのエンジンにFileExtensionsプロパティを追加しました


新しいFileExtensionsプロパティは、プレゼンテーションエンジンを処理できる拡張子を指定するためのものです。 この革新は、ビューファイルのパフォーマンスを明示的に指定するときに使用するエンジンを決定できるようにするために行われました。

image

以前は、この呼び出しによってWebフォーム(最初に登録されたプレゼンテーションエンジン)を介した呼び出しが発生し、例外が発生しました。 これで、新しいプロパティを使用して、MVC 3は指定されたファイルに使用するエンジンを決定できます。

おわりに


ASP.NET MVC 3は、重要な変更や革新を含まない「洗練された」リリースです。 このバージョンでは、ASP.NET MVC 3の最終バージョンをリリースする前に、最新の修正とマイナーな変更の一部を提示します。ただし、RC2へのマイナーな変更でさえ、すべてのASP.NET MVC開発者に知られる必要があります。

Source: https://habr.com/ru/post/J109894/


All Articles