【发布时间】:2016-10-26 08:44:47
【问题描述】:
上周我在使用 Visual Studio 2013 专业版时遇到了一些问题,这意味着我必须重新安装该软件。我已将所有内容都设置好,并且我注意到 IntelliSense 在我的剃刀文件中无法用于 umbraco 7 项目中的动态对象。我可能是错的,但我可以发誓这在重新安装 VS 之前曾经工作过。
在 umbraco razor 视图中考虑以下代码
@inherits Umbraco.Web.Mvc.UmbracoTemplatePage
@{
//gets the home page using doc type alias (root node)
var siteRoot = Model.Content.AncestorOrSelf("homePage");
//gets the about us page using doc type alias
var portfolioPage = siteRoot.Descendant("portfolioPage");
//gets the gallery page using doc type alias
var galleryPage = siteRoot.Descendant("galleryPage");
var imagesToDisplay = portfolioPage.HasValue("imageAmount") ? portfolioPage.GetPropertyValue<int>("imageAmount") : 2;
}
<!-- .container -->
<div class="container">
<div class="post-heading-center">
<h2>@(portfolioPage.HasValue("heading") ? portfolioPage.GetPropertyValue("heading") : portfolioPage.Name)</h2>
</div>
<nav>
<a href="#">All Work</a>
<!--get gallery albums-->
@foreach (var type in galleryPage.Children)
{
var galleryAlbum = Umbraco.Media(type.GetPropertyValue<int>("image"));
if (galleryAlbum.ChildrenAsList.Count() != 0)
{
<a href="#" data-filter=".class-@type.Id">@type.Name</a>
}
}
</nav>
</div>
使用 Visual Studio IntelliSense 时,我没有得到任何选项和一条消息,通知我它是一个动态表达式,它将在运行时解决。 IntelliSense 似乎不存在。
我安装了 resharpher 终极版,当我转到 resharper > 选项并切换到 resharper IntelliSense 时,我从对象中获取成员以及我在其他地方使用过但 resharper 不太确定的成员。
我知道 ChildrenAsList 成员(这是我需要的)可用于动态 galleryAlbum 对象,但为什么我的 IntelliSense 不告诉我这一点。
我注意到的另一件事是,我的 IntelliSense 会不断停止工作,无论它处于 vs 还是 resharper 模式,这也让我相信这个安装出了问题。要修复我要么必须关闭代码文件或项目本身。因此,考虑到上述情况,我有以下问题
- vs IntelliSense 的标准行为是否无法使用 umbraco razor 视图中的动态对象?
- 为什么在使用 resharper IntelliSense 时会显示基础对象成员 而不是在使用 VS IntelliSense 时?
- 为什么所有 IntelliSense 总是停止工作?
如果有人对上述内容有任何信息,那么我将非常感激。我试过了
- 通过导入和导出向导重置所有用户设置
- 在语句中检查了“自动列出成员”和“参数信息” 在 vs 选项中完成
运气不好。
我也向 umbraco 社区 https://our.umbraco.org/forum/using-umbraco-and-getting-started/80911-razor-visual-studio-intellisense-not-working-for-dynamic-objects 提出了这个问题
【问题讨论】:
-
dynamic= 没有智能感知,这很正常
标签: c# visual-studio razor intellisense umbraco7