system.web.mvc.htmlhelper не содержит определения содержимого - PullRequest
0 голосов
/ 30 ноября 2011

Я пытаюсь создать asp.net MVC 3 Razor помощник в папке app_code следующим образом:

@using System.Web.Mvc;

@helper Script(string scriptName, System.Web.Mvc.HtmlHelper url){    
      <script src="@url.Content"~/Scripts/" + scriptName)" type="text/javascript"></script>
}

но я получаю сообщение об ошибке:

system.web.mvc.htmlhelper не содержит определения содержания

в следующей строке:

 <script src="@url.Content"~/Scripts/" + scriptName)" type="text/javascript"></script>

Ответы [ 3 ]

1 голос
/ 30 ноября 2011

Ошибка удивительно полезна - HtmlHelper не содержит метод Content (), а UrlHelper -. Попробуйте это:

@helper Script(string scriptName, System.Web.Mvc.UrlHelper url){    
  <script src='@url.Content("~/Scripts/" + scriptName)' type="text/javascript"></script>
}
0 голосов
/ 06 января 2012

Не знаю почему, но у меня это не работает. После запуска все управление jQuery не работает, но в исходном коде я вижу его.

если я попытаюсь включить

<script src="/Scripts/jquery-1.7.1.min.js" type="text/javascript"> </script>

все элементы управления работают.

0 голосов
/ 30 ноября 2011

Вы можете сделать так, но это доступно только в одном представлении.

Если вы хотите получить доступ к этому из других представлений, вы должны написать настоящий HtmlHelper вроде

Пример HtmlHelper

Создать статический класс

public static class TestClass
{
    public static IHtmlString Script(this HtmlHelper helper, string script)
    {
        // if you need the UrlHelper do this
        // var urlHelper = new UrlHelper(helper.ViewContext.RequestContext);
        return new HtmlString(string.Format("<script src=\"~/Scripts/{0}\" type=\"text/javascript\"></script>", script));
    }
}

тогда вы можете позвонить с вашей точки зрения, как это

@Html.Script("jquery-1.5.1.js")

Убедитесь, что ваше представление знает пространство имен, в котором живет ваш класс.

надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...