Question

How can I escape the razor engine to print a literal period after my property value? The compiler is interpreting the period as to be followed by a method or property, so it throws an error that 'PDF' is not a valid property or method.

col.Custom(@<a href="http://someurl/@item.INSTRUMENT_NUM.pdf">@item.INSTRUMENT_NUM</a>).Named("Instrument Number");

yellow screen of death

Compiler Error Message: CS1061: 'string' does not contain a definition for 'pdf' and no extension method 'pdf' accepting a first argument of type 'string' could be found (are you missing a using directive or an assembly reference?)

Was it helpful?

Solution

Wrap it in parenthesis (assuming INSTRUMENT_NUM is a property of item and not to be printed as literal - adapt the closing parenthesis location if this is not the case):

col.Custom(@<a href="http://someurl/@(item.INSTRUMENT_NUM).pdf">@item.INSTRUMENT_NUM</a>)
   .Named("Instrument Number");
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top