当我添加文件夹'app_code'时,ASP.NET MVC抛出错误
-
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 / [端口] ...
我已经有代码到我项目的其他文件夹中。
必须必须将所有代码移动到'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