Я думаю, что проблема возникла, потому что неявное выражение Razor используется с тегом HTML, предшествующим ему:
<code><pre>@Model.Exception.InnerException?.Message
, что интерпретируется как это, следовательно, синтаксический анализатор читает только свойство Model.Exception.InnerException
:
<code><pre>@(Model.Exception.InnerException.ToString())?.Message
Нулевой условный оператор в C # 6.0 и выше требует использования явного выражения в некоторых версиях Razor до введения C # 6.0, поскольку синтаксический анализатор неявных выражений все еще следует за предыдущими версиями C #синтаксис.Поскольку синтаксис явного выражения позволяет гибко анализировать код на стороне сервера в соответствии с текущей версией C #, приведенное выше выражение должно быть записано так:
<code><pre>@(Model.Exception.InnerException?.Message)
Примечание:
Это крайний случай, когда Razor неверно истолковал нулевой условный оператор как часть литеральной строки вместо кода с неявным выражением, а явное выражение помогает визуализировать содержимое свойства.
Ссылка:
Явные выражения Razor
Проблема, связанная с этим:
Новый нуль-условный оператор в ASP.NET MVC Razor