Я создаю сайт ASP.Net MVC. Вместо того, чтобы иметь все в одном проекте, я решил разделить Web, Model и Controller на разные проекты в одном и том же решении, которые ссылаются друг на друга.Почему мои расширения HtmlHelper не работают?
Ссылающиеся выглядит следующим образом:
Web --- [ссылка] ---> контроллер --- [ссылка] ---> Модель
Теперь я хотел бы добавить 2 пользовательских метода для класса HtmlHelper - они называются «IncludeScript» и «IncludeStyle». Каждый из них принимает один строковый параметр и генерирует скрипт или тег ссылки соответственно.
Я создал класс расширителя в соответствии с документацией в Интернете и написал два метода и скомпилировал приложение.
Теперь, когда я иду на страницу Public.Master (которая является моей основной мастер-страницы, и один из тех мест, где я намерен использовать эти методы), я могу ввести код, например, как показано ниже:
<%= Html.IncludeScript("\js\jquery.js") %>
IntelliSense выбирает метод IncludeScript и показывает, что синтаксис просто отлично. Поэтому я ожидаю, что все будет работать.
Но это не так.
Все компилируется, но как только я запустить приложение, я получаю следующее сообщение ошибки времени выполнения от линии 14 из Default.aspx.cs:
c:\\Projects\\PhoneReel\\PhoneReel.Web\\Views\\Shared\\Public.Master(11): error CS0117: 'System.Web.Mvc.HtmlHelper' does not contain a definition for 'IncludeScript'
Вот строка кода, что ошибка происходит на:
httpHandler.ProcessRequest(HttpContext.Current);
Любые идеи, что может идти здесь не так?
Не могли бы вы вставить код сценария Include, а также проект, в котором он присутствует? – Ramesh 2009-12-30 15:25:04