HtmlHelpers для управления скриптами для частичных представлений Razor.

Я пытаюсь использовать Forloop HtmlHelpers для управления скриптами для частичных представлений Razor в моем ASP. Проект .Net MVC 4.

 <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» (вы пропустили директиву использования или ссылка на сборку?)

Я установил этот пакет через консоль диспетчера пакетов. Как побороть эту проблему?

Спасибо.


person s.k.paul    schedule 30.10.2013    source источник


Ответы (1)


Вам нужно добавить пространство имен 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 добавит это для вас. Тем временем я обновил эту информацию на вики-странице :)

EDIT: теперь это выполняется как часть установки пакета 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");
}
person Russ Cam    schedule 13.11.2013