2010-10-12 2 views
7

Я видел много примеров использования Url.Content для ссылки на JavaScript, формы MasterPages в MVC 2.Использование Url.Content в ASP.net MVC 2.0

<script src="<%: Url.Content("~/Scripts/jquery-1.4.1.min.js") %>" type="text/javascript"></script> 

Но во время выполнения я получил отказ ,

Compilation Error Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.

Сообщение об ошибке компилятора: CS0103: Название «Url» не существует в текущем контексте.

Я не нашел, где объявлено пространство имен Url, должны ли использоваться дополнительные сборки?

VS2010, IIS 7, ASP.NET MVC 2.0

+0

Если вы вынимаете эту строку, ваше приложение работает правильно? – awrigley

ответ

8

Убедитесь, что ваша главная страница наследуется System.Web.Mvc.ViewMasterPage

+0

Правда! Он начал работать! –

1

Удалены редактировать, так как одиночные кавычки обработана как символ буквального, так вызывает 'слишком много символов в буквальном' ошибки. Самая вероятная причина все еще опечатка, ИМХО.

ОРИГИНАЛ POST (до сих пор стоит повторно класса UrlHelper):

Url.Content(): Url здесь это вспомогательный метод, немного как помощники Html или Ajax.

В коде, я полагаю, что ее класс:

System.Web.Mvc.UrlHelper

Ie, пространство имен System.Web.Mvc.

Так что очень странно, что вы не можете просто использовать его, если, то есть, вы действительно используете спецификацию, подробно описанную выше.

+0

Серьезно .. нет сборки System.Web.Mvc.UrlHelper, такого пространства имен нет. –

+0

Я не сказал, что был. Я сказал, что в пространстве имен System.Web.Mvc есть класс под названием UrlHelper. – awrigley

+0

Еще одна ошибка: CS1012: Слишком много символов в символе буквально, в той же строке .. Так странно .. ( –

2

Алекс,

попробуйте добавить следующий метод расширения и посмотреть, если это получить это вам дальнейшее

public static partial class HtmlHelperExtensions 
{ 
    public static string Script(this HtmlHelper html, string path) 
    { 
     var filePath = VirtualPathUtility.ToAbsolute(path); 
     HttpContextBase context = html.ViewContext.HttpContext; 
     // don't add the file if it's already there 
     if (context.Items.Contains(filePath)) 
      return ""; 
     return "<script type=\"text/javascript\" src=\"" + filePath + "\"></script>"; 
    } 
} 

использование:

<%=Html.Script("~/Scripts/jquery-1.4.2.min.js")%> 

Я знаю, что это не будет отвечать на Ваш вопрос напрямую , но позволит вам перемещать fwd ...

+0

jim, спасибо, это на самом деле приемлемо .. но я постараюсь выяснить почему Url.Content просто не существует ??? Я сейчас ищу googling, не мог найти документацию для него .. может быть, это действительно исчезло? –

Смежные вопросы