views:

168

answers:

4

I want to do something like this in my aspx page:

<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?

A: 

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.

Dested
+6  A: 

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" />
Dean Harding
Thanks for the explanation that it must be well-formed XML. Always helps to know the "why". (As I side note, I agree with jdk's comment that a server tag would be better here.)
Kyle Ryan
+4  A: 

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.

John K
A: 

To answer the side question: "Why is this particular property necesary?" .. Just take it out. You'll figure it out soon enough.

Chris Lively