用于管理Razor部分视图脚本的HtmlHelpers

时间:2013-10-30 14:27:56

标签: asp.net-mvc-4 partial-views

我正在尝试使用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'(你错过了吗?   使用指令或程序集引用?)

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

谢谢。

1 个答案:

答案 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");
}