Я пытаюсь добавить метод расширения к моему проекту MVC 2 без успеха и после нескольких часов поиска в Интернете и глядя здесь Я в недоумении. Я создал новый проект MVC 2, чтобы убедиться, что в моем существующем проекте нет ничего странного, и я все еще сталкиваюсь с той же проблемой. Я уверен, что это ситуация, когда я «не вижу леса для деревьев», поэтому любая помощь будет принята с большой благодарностью. Вот код для метода расширения.Удлинительный метод UrlHelper не работает
using System.Web.Mvc;
namespace ExtensionTest.Helper
{
public static class UrlExtensions
{
public static string Image(this UrlHelper helper, string fileName)
{
return helper.Content("~/Content/Images/" + fileName);
}
}
}
и вот код в виде (стандартном виде дома индекса, созданный по умолчанию для нового проекта MVC 2)
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %>
<%@ Import Namespace="ExtensionTest.Helper" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
Home Page
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<%= UrlHelper.Image("test") %>
<h2><%: ViewData["Message"] %></h2>
<p>
To learn more about ASP.NET MVC visit <a href="http://asp.net/mvc" title="ASP.NET MVC Website">http://asp.net/mvc</a>.
</p>
</asp:Content>
В режиме конструктора, когда я тип UrlHelper, IntelliSense не показывает мой метод расширения изображения, и если я запускаю проект, я получаю следующее сообщение об ошибке:
CS0117: 'System.Web.Mvc.UrlHelper' does not contain a definition for 'Image'
Сначала я думал, что это было так просто, как не добавляя ссылки (импорт заявление), но это не кажется это так. Для меня действительно странно, что я могу добавлять методы расширения к объекту HtmlHelper без проблем в этом же проекте.
Заранее благодарим за предоставленную помощь.
У меня нет немедленного решения, не пытаясь тест-построить в течение очень долгого дня ... но вы пробовали переименование вспомогательной функции что-то явно менее распространенное/очевидное, чем «Изображение» ... возможно, «MyImage» или «TestImage», чтобы увидеть, отличаются ли результаты? – JcMaltaDev