我正在尝试使用Forloop HtmlHelpers来管理我的ASP.Net MVC 4项目中的Razor Partial Views脚本。
<div class="row-fluid">
//some markups here
</div>
@{
// begin a context for the scripts
Html.BeginScriptContext();
Html.AddScriptBlock(@"$(function() { alert('hello from the page'); } });");
Html.AddScriptFile("~/Scripts/jquery-ui-1.8.11.js");
// end the script context
Html.EndScriptContext();
}
但是,它在编译期间抛出了以下错误 -
'System.Web.Mvc.HtmlHelper'不包含的定义 'BeginScriptContext',没有扩展方法'BeginScriptContext' 接受第一个类型的参数 可以找到'System.Web.Mvc.HtmlHelper'(你错过了吗? 使用指令或程序集引用?)
我已经通过包管理器控制台安装了这个包。 如何克服这个问题?
谢谢。
答案 0 :(得分:2)
您需要添加Forloop.HtmlHelpers
命名空间
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="BaseTemplate.Web.Extensions.BaseTemplateWebViewPage">
<namespaces>
<! -- Add the following namespace to the others -->
<add namespace="Forloop.HtmlHelpers" />
</namespaces>
</pages>
</system.web.webPages.razor>
到应用程序中Web.config
文件夹中的Views
。
nuget包的未来更新将为您添加此内容。与此同时,I have updated the wiki page with this information :)
编辑:现在,这是作为nuget软件包安装的一部分执行的。
另外,我建议使用以下语法,因为它更简洁
@using (Html.BeginScriptContext())
{
Html.AddScriptBlock(
@<script type="text/javascript">
$(function() { alert('hello from the page'); } });
</script>);
Html.AddScriptFile("~/Scripts/jquery-ui-1.8.11.js");
}