Ошибка броска MVC ASP.NET Когда я добавляю папку «App_Code»
-
12-12-2019 - |
Вопрос
Сегодня я нашел очень хорошую функцию, даю мне возможность добавлять помощника 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)
.