Ошибка броска MVC ASP.NET Когда я добавляю папку «App_Code»

StackOverflow https://stackoverflow.com//questions/11691040

Вопрос

Сегодня я нашел очень хорошую функцию, даю мне возможность добавлять помощника 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>
   }
}
.

Проблема немедленно добавляет эту папку только одним файлом, когда я пытаюсь получить доступ к странице в браузере, я получаю ошибку сервера.

"NetworkError: 500 Ошибка внутреннего сервера - http:// localhost / [port] ...

У меня уже есть код в другие папки моего проекта.

Должен ли я должен переместить весь свой код в папку «App_code», или есть ли кто-нибудь, чтобы сохранить мою существующую структуру, но с этой новой папкой «App_Code»?

Спасибо.

Это было полезно?

Решение

Вы не можете использовать помощников внутри помощника, чтобы они не так полезны, как вы, возможно, изначально думали :-)

Такие вещи, такие как Html, и Url, не существует в тех функциях помощника.Поэтому, если вам нужно их использовать, вам придется пропускать их в качестве параметров:

@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