對於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的保持與以下消息抱怨:
查看\共享\ _RouteData。 CSHTML:18結束的括號預計
爲了節省您從計數第18行是在文件的結尾。
與Resharper建議的相反,整個項目編譯並運行良好。 但是,我仍然有某種語法問題,我失蹤了?或者,Resharper在這種情況下顯然是錯誤的? 我正在運行Resharper 8.2(C#版)。
(請原諒我可憐的企圖在從代碼刪除敏感信息,我將所有括號和上述完整)
是否代碼編譯?你能查看頁面嗎?在Razor中缺少'}'會導致YSOD。如果你能查看頁面,Resharper是錯誤的。如果你不能,你可能會在異常信息 –
上看到一個類似的錯誤我會打賭,雖然這個「@TempData [」SELECTED_AREA「]」'引起了問題 - 字符串中的雙引號 –
代碼編譯並運行良好(如上所述)。 ''@TempData [「SELECTED_AREA」]「'實際上工作得很好,不會導致其它頁面上的錯誤。 – Vincent