</a>
現在、ドロップダウンメニューを機能させるために、このIE固有のコメントで終了タグをラップする必要があるIE6/7のバグを回避しようとしています。
<!--[if IE 7]><!--></a><!--<![endif]-->
残念ながら、これを次のようにビューページコードに直接挿入することはできません。
<%= Html.ActionLink("LinkName<!--[if IE 7]><!--></a><!--<![endif]-->","Action","Controller") %>
Html.ActionLinkは安全な処理を行い、コメントを除外してJavascriptインジェクション攻撃を防ぎます。うんいいね。私はそれで大丈夫です。良い設計上の決定。
私がやりたいのはこれに拡張メソッドを書くことですが、これまでにこれを行ったことがないので、プロセスは私を避けています。
これでうまくいくと思いましたが、Intellisenseは私が書いたこのExtensionメソッドを採用していないようです。
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() %>
すると、それはすでに拡張メソッドのように見えます。拡張メソッドを拡張できますか?