マイクロソフトがWebMatrix製品のインラインコーディング用に開発したRazor構文が気に入っています( http://en.wikipedia.org/wiki/Microsoft_WebMatrix )。
Visual Studio SP1がRTMされたので、ASP.NET WebformsでRazor構文の使用を有効にすることは可能ですか(および/または計画されていますか)?
私たち(ASP.NETチーム)は現在、Razor構文を使用したWebFormsページモデルをサポートする予定はありません。さらに、モデルがあまりにも異なるため、2つを一緒に機能させることができないため、これを真剣に検討することはほとんどありません。
MVCなしでRazorページを使用できます。これはASP.Net WebPagesと呼ばれます。
.CSHTMLファイルを通常のASP.Net 4.0プロジェクトに追加するだけです。
私 この仕組みの説明 私のブログで。
Codeplex から入手できるRazorEngineを使用して統合することもできます。 MVCの外でカミソリを処理できます。 RazorのMVCバージョンから得られるすべての機能(@Html
および@Url
その他。
これは本当に難しいことではありません。今すぐ取り組んでいます。 CodePlexからRazorEngineを入手します。 Razor cshtml/vbhtmlファイルを実行時にクラスにコンパイルできます。
その後、そのクラスを取得し、Renderメソッド内でASP.Netサーバーコントロールから使用できます。これは、サーバーコントロールの本体からHTMLを取得するのに最適な方法です。はるかにきれいです。
これで、Razorから呼び出すことができるメソッドを追加することもできます。たとえば、RenderChildのようなものを追加します。さらに、サーバーコントロール自体を、Razorで使用可能なモデルとして設定できます。その後、サーバーコントロールを呼び出すことができます。子コントロールの1つを取得してRenderを呼び出すなどの操作を含む。
マイクロソフトはそれを検討したと思いますが、この件に関する公式の言葉はありません。 ASPXファイルにC#またはVBコードが含まれているはずがないため、WebフォームにRazorサポートを追加する点について疑問に思う必要があります。背後のコードは(部分)です。クラスファイル。WebページまたはMVCのクラスファイルに配置するよりも、Razorを配置する必要はありません。また、サーバーコントロールとHtmlヘルパーのすべての宣言的なものを交換すると、Webに移行する主な理由の1つが削除されますフォームルート、IMO。