0

今日、私はcshtmlヘルパーを追加する機能を提供する非常に優れた機能を見つけました。これを行うには、cshtmlファイルを「App_Code」という名前のフォルダーに配置してから、次のようなコードに追加する必要があります。

@using System.Security.Policy

@helper jQuery(){
   if (System.Diagnostics.Debugger.IsAttached)
   {
        <script src="@Url.Content("~/Scripts/JQuery/jquery-1.7.2.js")" type="text/javascript"></script>
   }
   else
   {
        <script src="@Url.Content("~/Scripts/JQuery/jquery-1.7.2.min.js")" type="text/javascript"></script>
   }
}

このフォルダを1つのファイルで追加した直後に問題が発生します。ブラウザでページにアクセスしようとすると、サーバーエラーが発生します。

"NetworkError:500 Internal Server Error-http:// localhost /[Port]..。

プロジェクトの他のフォルダにすでにコードがあります。

すべてのコードを「App_Code」フォルダーに移動する必要がありますか、それとも既存の構造を維持するためのトリックがありますが、この新しい「App_Code」フォルダーを使用しますか?

ありがとうございました。

4

1 に答える 1

2

ヘルパー内でヘルパーを使用することはできないため、最初に考えていたほど役に立ちません:-)

これらのヘルパー関数のようなものHtmlUrl存在しないもの。したがって、それらを使用する必要がある場合は、パラメーターとして渡す必要があります。

@using System.Web.Mvc
@using System.Security.Policy

@helper jQuery(UrlHelper urlHelper)
{
   if (System.Diagnostics.Debugger.IsAttached)
   {
        <script src="@urlHelper.Content("~/Scripts/JQuery/jquery-1.7.2.js")" type="text/javascript"></script>
   }
   else
   {
        <script src="@urlHelper.Content("~/Scripts/JQuery/jquery-1.7.2.min.js")" type="text/javascript"></script>
   }
}

そして、呼び出すときに、現在のUrlHelperのインスタンスをそれに渡します。

@Foo.jQuery(Url)
于 2012-07-27T15:40:02.800 に答える