asp.net user control, getting htmlAnchor resolve to href=“#”

后端 未结 10 1572
轻奢々
轻奢々 2020-12-29 04:58

How do you get a server control HTMLAnchor to have href=\"#\". It keeps resolving the \"#\" to the control path.


res         


        
10条回答
  •  青春惊慌失措
    2020-12-29 05:27

    Originally I had this as a comment but by request I'm adding it as an answer since nobody else has explained why the original behavior is occurring or how to directly prevent it.

    The URL rewriting is caused by the method ResolveURL on the Control class. I looked at it in Reflector and found that it will attempt to rewrite anything that it thinks is a relative URL if AppRelativeTemplateSourceDirectory is non-empty.

    The simple workaround is to set this variable on the Page object to an empty string at some global level (or at least before Render), although this could be an issue if some other bit of your control structure requires it to be empty.

    I suppose a true fix would be to get Microsoft to make UrlPath.IsRelativeUrl() smarter.

提交回复
热议问题