지금, 나는 약간의 드롭 다운 메뉴에서 작업하기 위해이 IE 특정 주석과 </a>
닫는 태그의 포장을 필요로하는 IE6/7 버그를 해결하기 위해 노력하고있어 : 불행하게도ASP.NET의 Html.ActionLink() 메서드에 대한 확장 메서드를 작성할 수 있습니까?
<!--[if IE 7]><!--></a><!--<![endif]-->
을, I 이처럼 내보기 페이지 코드에 직접 주입 할 수 없습니다
<%= Html.ActionLink("LinkName<!--[if IE 7]><!--></a><!--<![endif]-->","Action","Controller") %>
을 Html.ActionLink가 안전한 일을하고 자바 스크립트 인젝션 공격을 방지하기 위해 주석을 걸러으로. 그래 좋아. 나는 괜찮아. 좋은 디자인 결정.
내가하고 싶은 것은 확장 메서드를 작성하는 것입니다. 그러나이 프로세스는 이전에하지 않았으므로 그 부분을 보지 못했습니다.
나는이 방법이 효과가있을 것이라고 생각했지만 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() %>
이상의 마우스가 이미 확장 메서드 인 것처럼 보입니다. 확장 방법을 확장 할 수 있습니까?
응용 프로그램을 만들려고 했습니까? 코드가 불법으로 처리되는 경우 (또는 Intellisense에 표시되지 않는 경우)도 괜찮습니다. – ChrisF
그래, 구축하려했지만 행운이 없었습니다 – Pretzel