Для C# MVC 5 приложения мы имеем следующий частичный вид:Почему Resharper ожидает закрытие скобки здесь?
@using some.using.here
@using some.using.here
@using some.using.here
@{
var treeItem = TempData["SELECTED_TREEITEM"] as ITreeItem;
string path = treeItem.GetIdPath(TempData.GetParentId());
User user = Session["somesessionkey"] as User;
}
<!-- Selected item from URL -->
@if (treeItem != null)
{
<input type="hidden" id="routeData" data-key="@treeItem.Key" data-treepath="@path" data-area="@TempData["SELECTED_AREA"]" data-mode="@TempData["SELECTED_MODE"]">
}
<input type="hidden" id="defaultAsset" data-default="@(user != null ? (user.DefaultAsset != null ? methodcall(value).ToString() : string.Empty) : string.Empty)" />
<input type="hidden" id="newPeriodHrs" data-newperiodhrs="@(user != null ? user.NewPeriodHrs : 48)" />
Однако, независимо от того, что я делаю, Resharper не продолжает жаловаться со следующим сообщением:
Views \ Shared \ _RouteData. cshtml: 18 Ожидаемая закрывающая скобка
Чтобы сохранить вас от подсчета, строка 18 находится в конце файла.
В отличие от того, что может предложить Resharper, весь проект компилируется и работает отлично. Но есть ли еще какой-то синтаксический вопрос, который мне не хватает? Или в этом случае Resharper просто ошибается? Я запускаю Resharper 8.2 (выпуск C#).
(пожалуйста, простите мою бедную попытку удаления конфиденциальной информации из кода, я оставил все фигурные скобки и такие нетронутые)
компилировать ли код? Вы можете просмотреть страницу? Отсутствие '}' в Razor приведет к YSOD. Если вы можете просмотреть страницу, Resharper ошибочен. Если вы этого не сделаете, вы, вероятно, увидите аналогичную ошибку в сообщении об исключении –
Ставлю, что эта '' @TempData ["SELECTED_AREA"] "' вызывает проблему - двойные кавычки внутри строки –
Код компилируется и работает отлично (как уже описано выше). '' @TempData ["SELECTED_AREA"] "' на самом деле работает просто отлично, не вызывает ошибок на множестве других страниц, на которых он используется. – Vincent