質問

今日、私は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内部サーバエラー - http:// localhost / [port] ...

私はすでに私のプロジェクトの他のフォルダにコードを持っています。

コードをすべて 'APP_CODE'フォルダに移動する必要があるか、既存の構造を保持するためのトリックはありますか?

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

役に立ちましたか?

解決

最初に考えられているかもしれないので、ヘルパー内のヘルパーを使用することはできません.-)

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)
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top