views:

121

answers:

1

I have a table with repeating customer rows, I would like to add the customer ID to the ID attribute of my table rows like this:

<tr id="row<customer id>"></tr>

I try adding this code:

@foreach(var c in Model) {
   <tr id="[email protected]"></tr>
}

Which gives me the following output:

<tr id="[email protected]"></tr>
<tr id="[email protected]"></tr>

etc.

But I would like it to be:

<tr id="row1"></tr>
<tr id="row2"></tr>

etc.

I also tried to add <tr>row@{c.id}</tr> but it did not work..

+8  A: 

have you tried <tr>row@(c.id)</tr>?

The actual reason why this doesn't work is because your [email protected] matches the regex for an email address. So the parser assumes it's an email and not actually an attempt to call code. The reason row@{c.id} doesn't work is because the @{} doesn't output and is meant to contain blocks of code.

When in doubt you should use @() as it will force what's contained between the () to be parsed as code.

The Razor Syntax Highlighter from the Visual Studio Gallery definitely helps you see when your code isn't going to be parsed as it only highlights that which the razor parser sees as actual code. If it's not highlighted properly then something is definitely wrong.

BuildStarted
Thank you, I dont have the highlighter, so it is not easy for me to see. Have to install that one ASAP :P
Martin