Can I place a comment inside a tag in ASP.NET?

2020-04-06 16:15发布

问题:

I am looking to display this in my .aspx page, without using special character XML tags, can this be achieved?

<asp:ServerTag Property1="a"
    Property2="b"
    Property3="c" <%-- Comment why this particular property is necessary --%>
    Property4="d" /> 

However, I am greeted with the error message Server tags cannot contain <% ... %> constructs. If I use an HTML <!-- --> tag, I'm told the server tag is not well formed.

Is there any other syntax to make this possible?

回答1:

It's not possible, no. The server tags need to be well-formed XML and you can't have tags like that in XML. You can put a comment at the top, of course, like so:

<!-- Property2 needed because... -->
<asp:ServerTag Property1="a" Property2="b" Property3="c" />


回答2:

Put server-side comment above your server-side control.

  • <!-- client-side comment (html) - appears in html source but not rendered on page
  • <%-- server-side comment - stripped out on server, never sees light of day, browser never knows about it

like this

<%-- Usage:
Property2 is xyz... 
Property3 will .. abc. Ignore Property  1 when this is set. etc
--%>
<asp:ServerTag Property1="a"
    Property2="b"
    Property3="c" 
    Property4="d" /> 

It's just like putting source code comments above your functions.
 

Think "server to server". It will make the difference between your HTML source looking like
cluttered with "pass through" html comment <!--:

<!-- Property usage: abc, def, ...xyz -->
Rendered server control contents.

vs. the cleaner stripped out " <%-- source:

Rendered server control contents.

Less bandwidth with latter too. No extraneous (and confusing to user) comments in HTML source.



回答3:

Not necessarily like that but you may want to consider decorating the property in c# to let the user know its relevance. After that something like resharper (or maybe vs) will give you this information when you try to set it.