0

对于 C# MVC 5 应用程序,我们有以下部分视图:

@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# 版)。

(请原谅我从代码中删除敏感信息的糟糕尝试,我留下了所有大括号等完整)

4

1 回答 1

1

事实证明,这个解决方案真的很狡猾,这篇文​​章中缺少一个斜线:

@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"]">
}

它应该如下所示: data-mode="@TempData["SELECTED_MODE"]" / >

于 2015-01-09T10:56:22.017 回答