Сейчас я пытаюсь работать вокруг IE6/7 ошибки, которая требует оборачивания </a>
закрывающего тега с этим IE отдельным комментарием, чтобы сделать некоторую раскрывающуюся работу меню:Возможно написать метод расширения метода ASP.NET для Html.ActionLink()?
<!--[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]-->");
}
}
Любые предложения?
EDIT: Имеет ли название класс? (в моем случае я назвал его MyLinkExtensions)
Кроме того, когда мышь над <%= Html.ActionLink() %>
, которая уже является методом расширения. Могу ли я продлить метод расширения?
Вы пытались создать приложение? У меня были случаи, когда код считается незаконным (или не отображается в Intellisense), несмотря на то, что он знает, что все в порядке. – ChrisF
Да, я попытался построить его, не повезло. – Pretzel