3

我正在尝试使用Forloop HtmlHelpers在我的 ASP.Net MVC 4 项目中管理 Razor 部分视图的脚本。

 <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”的定义,并且找不到接受“System.Web.Mvc.HtmlHelper”类型的第一个参数的扩展方法“BeginScriptContext”(您是否缺少 using 指令还是汇编参考?)

我已经通过包管理器控制台安装了这个包。如何克服这个问题?

谢谢你。

4

1 回答 1

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 包的未来更新将为您添加此内容。与此同时,我已经用这些信息更新了 wiki 页面:)

编辑:这现在作为 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");
}
于 2013-11-13T18:51:04.003 回答