Сейчас я пытаюсь обойти ошибку IE6 / 7, которая требует обертки закрывающего тега </a>
с этим конкретным комментарием IE, чтобы заставить работать какое-то раскрывающееся меню:
<!--[if IE 7]><!--></a><!--<![endif]-->
К сожалению, я не могу вставить это непосредственно в код моей страницы просмотра, например так:
<%= Html.ActionLink("LinkName<!--[if IE 7]><!--></a><!--<![endif]-->","Action","Controller") %>
Поскольку Html.ActionLink сделает безопасную вещь и отфильтрует комментарий, чтобы предотвратить атаку Javascript. Ладно, круто. Я в порядке с этим. Хорошее дизайнерское решение.
То, что я хотел бы сделать, это написать метод расширения для этого, но процесс ускользает от меня, поскольку я не делал этого раньше.
Я думал, что это сработает, но Intellisense, похоже, не использует этот метод расширения, который я написал.
public static class MyLinkExtensions
{
public static string ActionLinkIE(this HtmlHelper htmlHelper,
string linkText, string actionName, string controllerName)
{
return LinkExtensions.ActionLink(htmlHelper, linkText, actionName, controllerName).
Replace(@"</a>", @"<!--[if IE 7]><!--></a><!--<![endif]-->");
}
}
Есть предложения?
РЕДАКТИРОВАТЬ: Имеет ли значение имя класса? (в моем случае я назвал это MyLinkExtensions)
Кроме того, при наведении курсора на <%= Html.ActionLink() %>
это, по-видимому, уже метод расширения. Могу ли я расширить метод расширения?