ASP.NET MVC '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)
. 제휴하지 않습니다 StackOverflow