Visual Studio 2013 (pro) Razor IntelliSense 不适用于动态对象
Visual studion 2013 (pro) Razor IntelliSense not working for dynamic objects
上周我的 visual studio 2013 专业版遇到了一些问题,这意味着我不得不重新安装软件。我已将所有内容都设置好,并且我注意到 IntelliSense 在我的 ruzor 文件中无法用于 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 ultimate,当我转到 resharper > 选项并切换到 resharper IntelliSense 时,我从对象中获取成员以及我在其他地方使用过的成员,但 resharper 不太确定。
我知道 ChildrenAsList 成员(这是我需要的)可用于动态 galleryAlbum 对象,但为什么我的 IntelliSense 没有告诉我这个。
我注意到的另一件事是我的 IntelliSense 不断停止工作,无论它是在 vs 还是 resharper 模式,这也让我相信这个安装有问题。要修复,我必须关闭代码文件或项目本身。因此,考虑到上述情况,我有以下问题
- 不使用 vs IntelliSense 是标准行为吗
umbraco razor 视图中的动态对象?
- 为什么在使用resharper IntelliSense 时会显示基础对象成员
而不是在使用 VS IntelliSense 时?
- 为什么所有 IntelliSense 总是停止工作?
如果有人知道以上内容,我将不胜感激。我尝试过
- 通过导入和导出向导重置所有用户设置
- 在声明中检查了 'Auto list members' & 'Parameter information'
在 vs 选项中完成
运气不好。
我也向 umbraco 社区提出了这个问题 https://our.umbraco.org/forum/using-umbraco-and-getting-started/80911-razor-visual-studio-intellisense-not-working-for-dynamic-objects
动态对象可以是任何东西,它们在运行时解析。
而不是使用 Umbraco.Media
尝试使用 Umbraco.TypedMedia
来获得强类型模型。这样你就可以使用智能感知
上周我的 visual studio 2013 专业版遇到了一些问题,这意味着我不得不重新安装软件。我已将所有内容都设置好,并且我注意到 IntelliSense 在我的 ruzor 文件中无法用于 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 ultimate,当我转到 resharper > 选项并切换到 resharper IntelliSense 时,我从对象中获取成员以及我在其他地方使用过的成员,但 resharper 不太确定。
我知道 ChildrenAsList 成员(这是我需要的)可用于动态 galleryAlbum 对象,但为什么我的 IntelliSense 没有告诉我这个。
我注意到的另一件事是我的 IntelliSense 不断停止工作,无论它是在 vs 还是 resharper 模式,这也让我相信这个安装有问题。要修复,我必须关闭代码文件或项目本身。因此,考虑到上述情况,我有以下问题
- 不使用 vs IntelliSense 是标准行为吗 umbraco razor 视图中的动态对象?
- 为什么在使用resharper IntelliSense 时会显示基础对象成员 而不是在使用 VS IntelliSense 时?
- 为什么所有 IntelliSense 总是停止工作?
如果有人知道以上内容,我将不胜感激。我尝试过
- 通过导入和导出向导重置所有用户设置
- 在声明中检查了 'Auto list members' & 'Parameter information' 在 vs 选项中完成
运气不好。
我也向 umbraco 社区提出了这个问题 https://our.umbraco.org/forum/using-umbraco-and-getting-started/80911-razor-visual-studio-intellisense-not-working-for-dynamic-objects
动态对象可以是任何东西,它们在运行时解析。
而不是使用 Umbraco.Media
尝试使用 Umbraco.TypedMedia
来获得强类型模型。这样你就可以使用智能感知