3

Web フォーム Web アプリケーションでRazor エンジン ( razorengine.codeplex.com ) を使用することは可能ですか? ファイルを使用してテンプレートを定義しています。

サンプル.cshtml

<h1>Hello</h1>

または sample2.cshtml (インテリセンスを有効にするための継承あり)

@inherits SomeBaseClass<SomeModelClass>
<h1>Hello @Model.SomeProperty</h1>

アプリケーションの開始時に、テンプレートをコンパイルします。

//get files and loop
RazorEngine.Razor.Compile(templateString, razorPath);

ユーザー コントロールのコード ビハインドで、テンプレートをロード/解析します。

RazorEngine.Razor.Run<SomeModelClass>(model, razorPath);

問題:

Sample.cshtml では、次の例外が発生します。

タイプ 'ASP._Page_razor_Sample_cshtml' は 'System.Web.UI.UserControl' から継承されません。

Sample2.cshtml は、次の例外を提供します (例外が発生するコードは、コンパイルされた cshtml ソースから抽出された以下のコードです...):

CS0103: 'Context' という名前は現在のコンテキストに存在しません

Line 37:         protected ASP.global_asax ApplicationInstance {
Line 38:             get {
Line 39:                 return ((ASP.global_asax)(Context.ApplicationInstance));
Line 40:             }
Line 41:         }

この方法で Razor エンジンを使用することは可能ですか?

4

2 に答える 2

0

マスターページ/パーシャルでのRazorの使用に関する情報を見つけました:

http://www.eworldui.net/blog/post/2011/01/07/Using-Razor-Pages-with-WebForms-Master-Pages.aspx

Webフォーム内で一般的に使用できるとは思いませんが。

ただし、ScottHa は WebForms アプリ内で MVC を簡単に有効にするプロジェクトを NuGet に置いているため、アプリ内の特定の目的でのみ MVC を使用しようとしている場合に役立つ可能性があります。彼は、Mix での Phil Haack との NuGet トークでこれをデモしました。

http://nuget.org/List/Packages/AddMvc3ToWebForms

于 2011-05-13T13:29:37.720 に答える
0

この問題は、Razor エンジンとはまったく関係がありませんでした。CMS でパラメータを使用していましたが、これはたまたま予約語でした (文書化されていません!)。pathシステム自体でも使用されるパラメーター名として使用すると、かなり奇妙な結果が生じる可能性があります...さらに、パラメーター値が実際にファイルへのパスである場合...

于 2011-05-16T08:31:43.977 に答える