NameSpaces在视图web.config中添加,但在视图cshtml上没有可用的intellisence

时间:2016-02-09 14:49:17

标签: asp.net-mvc visual-studio sitecore sitecore8 sitecore-mvc

我在sitecore 8.1中使用MVC 5和glass mapper,但是对于所有MVC版本,这个问题似乎都是一样的。

我必须在每个视图中使用很多引用,所以我决定在View / web.config中移动它们,如下所示

<system.web.webPages.razor>
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <pages pageBaseType="System.Web.Mvc.WebViewPage">
      <namespaces>
        <add namespace="System.Web.Mvc" />
        <add namespace="System.Web.Mvc.Ajax" />
        <add namespace="System.Web.Mvc.Html" />
        <add namespace="System.Web.Routing" />

        <!-- Glass Mapper Namespaces -->
        <add namespace="Glass.Mapper.Sc.Mvc" />
        <add namespace="Glass.Mapper.Sc" />
        <add namespace="Glass.Mapper" />
        <add namespace="Glass.Mapper.Sc.Web.Mvc" />

        <!-- Sitecore Namespaces-->
        <add namespace="Sitecore" />
        <add namespace="Sitecore.Mvc"/>
        <add namespace="Sitecore.Mvc.Presentation" />
        <!--<add namespace="Sitecore.Mvc.Analytics"/>-->
        <add namespace="Sitecore.Mvc.Analytics.Extensions"/>

        <!-- xxx Namespaces-->
        <add namespace="xxx.SC.GlassMapper.ViewModel.Layout.Layouts.Renderings.Components.Global.Navigation"/>
        <add namespace="xxx.SC.GlassMapper.ViewModel.Layout.Layouts.Renderings.Components.Global.Site"/>
        <add namespace="xxx.SC.GlassMapper.ViewModel.Layout.Layouts"/>
        <add namespace="xxx.SC.GlassMapper.Model.Pages"/>
        <add namespace="xxx.SC.Shared.References"/>

      </namespaces>
    </pages>
  </system.web.webPages.razor>

如果我通过@using属性在视图本身上引用它们,它可以正常工作,但现在在我将引用移动到view / web.config文件后它无效。

以下是观点:

@inherits GlassView<Main>

@{
    Layout = null;
}

<!DOCTYPE html>
<html>
<head lang="@Model.LanguageIsoCode">

    @Html.Sitecore().Rendering(LayoutIDs.Head, Model.HeadDataSource)
    @Html.Sitecore().Rendering(LayoutIDs.StyleSheets)

</head>
<body lang="@Model.LanguageIsoCode">
    @Html.Sitecore().Rendering(LayoutIDs.Header, Model.MainNavigationDataSource)

    @Html.Sitecore().Placeholder("PlaceholderMain")

    @Html.Sitecore().Rendering(LayoutIDs.Footer, Model.FooterDataSource)
    @Html.Sitecore().Rendering(LayoutIDs.Scripts)
</body>

</html>

1 个答案:

答案 0 :(得分:1)

我前几天写了一篇博文。感谢Jammy Kam。

您需要做的就是在Visual Studio中将每个Sitecore dll设置为CopyLocal = true。

enter image description here

http://www.waitingimpatiently.com/intellisense-issue-when-using-sitecore-local-nuget-files/