Я создал дополнительный метод:
namespace MyComp.Web.MVC.Html
{
public static class LinkExtensions
{
public static MvcHtmlString ActionImageLink(this HtmlHelper htmlHelper, string linkText, string imageSource, string actionName)
{
...
}
}
}
Я сослался на блок из своего mvc приложения, и я попытался импортировать пространство имен, по моему мнению:
<%@ Import Namespace="MyComp.Web.Mvc.Html" %>
и я также добавил его к веб-файлу конфигурации:
<pages>
<controls>
...
</controls>
<namespaces>
<add namespace="System.Web.Mvc"/>
<add namespace="System.Web.Mvc.Ajax"/>
<add namespace="System.Web.Mvc.Html"/>
<add namespace="System.Web.Routing"/>
<add namespace="System.Linq"/>
<add namespace="System.Collections.Generic"/>
<add namespace="MyComp.Web.Mvc.Html"/>
</namespaces>
</pages>
По моему мнению, если я пытаюсь получить доступ к HTML. ActionImageLink я получаю ошибку при высказывании той Системы. Сеть. Mvc. HtmlHelper не содержит определение для ActionImageLink, принимающего первый тип аргумента Системы. Сеть. Mvc. HtmlHelper. Я не вижу ни одного из методов расширения ActionLink для Системы. Сеть. Mvc. HtmlHelper, только для Системы. Сеть. Mvc. HtmlHelper, поэтому как это работает на платформу .NET, а не на меня?
Обратите внимание на разницу в случае вашего пространства имен при объявлении и при импорте Отказ
namespace MyComp.Web.MVC.Html
{
}
<%@ Import Namespace="MyComp.Web.Mvc.Html" %>
<add namespace="MyComp.Web.Mvc.Html"/>
пространства имен чувствительны к регистру!
Одной из причин, возможно, вы возвращаете MVCHTMLSTRING и не строку. Включите пространство имен для класса MVCHTMLSTRING. Посмотрите, поможет ли это.
Попробуйте закрыть Visual Studio и снова открыть Solution. Когда вещи начинают вести себя странно, иногда это помогает.
. В соответствии с вашим методом расширения INTELLISENSE AutoCompletes? Это автозаполняет стандартные методы помощников MVC? Если нет, то произошла ошибка Setleation View. Убедитесь, что у вас есть правильное значение «наследует» значение атрибута в теге страницы в начале представления. Если вы используете сильно напечатанные представления, убедитесь, что «сильный тип» существует и компилирует.
Вы определяете метод расширения в том же проекте, где определен вид? Если нет, вы должны добавить ссылку в проекте MVC. Наконец, проверьте, если сборка с методом расширения (MyComp.Web.mvc.html.dll?) Находится в папке Bin приложения
, попытайтесь добавить объявление пространства имен на раздел страниц / пространства имен файла Web.config Размещено в папку Views в проекте MVC (не основной файл Project Web.config).