asp.net-mvc-5 - 使用 Glass Mapper 的 Sitecore 8 可编辑字段

标签 asp.net-mvc-5 sitecore glass-mapper sitecore-mvc sitecore8

出于某种原因,Visual Studio 在 View 中给了我这个错误:

Cannot convert lambda expression to type 'System.Linq.Expressions.Expression>' because it is not a delegate type



另外,我在 lambda 上没有智能感知。

我确保根据这篇文章将我的 MVC 版本降低到 5.1.0:

Sitecore glass editable cannot convert lambda expression

不幸的是,我没有直接对该帖子发表评论所需的 Stack Overflow 积分。不幸的是,MVC 版本的解决方案对我不起作用。当我发布部署时,数据通过得很好 - 编辑工作得很好 - 但我宁愿不只是忽略红色波浪线和缺乏智能感知。

从新的 Sitecore 8/Visual Studio MVC 应用程序设置中,我跑了:

更新包 Glass.Mapper.Sc.CaSTLeWindsor 给我 v3.3.1.26

然后我运行 Install-Package Glass.Mapper.Sc.Mvc-5 给我 v3.3.1.48

我设置了一个模型

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Glass.Mapper.Sc;
using Glass.Mapper.Sc.Configuration.Attributes;

namespace myns.app.Models
{
    [SitecoreType]
    public class BaseContent
    {
        [SitecoreId]
        public virtual Guid Id { get; set; }

        [SitecoreField("Content Title")]
        public virtual string Title { get; set; }

        [SitecoreField("Summary Content")]
        public virtual string Summary { get; set; }

        [SitecoreField("Full Content")]
        public virtual string Content { get; set; }

        [SitecoreField("Content Image")]
        public virtual Glass.Mapper.Sc.Fields.Image ImagePath { get; set; }

    }
}

并有一种工作 View

@inherits Glass.Mapper.Sc.Web.Mvc.GlassView<myns.app.Models.BaseContent>

<div>
    <h4>BaseContent</h4>
    <hr />
    @Model.Title
    <p>@Editable(Model, x => x.Title)</p>
    <p>@Editable(Model, x => x.Summary)</p>
    <h5>content</h5>
    <p>@Editable(Model, x => x.Content)</p>
    <p>@RenderImage(Model, x => x.ImagePath)</p> 
</div>

在此先感谢您的任何意见!

更新 :
当我在 中注释掉以下三行时汇编>装配在 Sitecore 提供的 web.config 中,问题似乎消失了。不确定这是最好的做法:

<compilation defaultLanguage="c#" debug="false" targetFramework="4.5">
      <assemblies>
        <add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
        <add assembly="System.Web.Helpers, Version=3.0.0.0, Culture=neutral,PublicKeyToken=31BF3856AD364E35" />
        <add assembly="System.Web.Mvc, Version=5.2.2.0, Culture=neutral,PublicKeyToken=31BF3856AD364E35" />
        <add assembly="System.Web.WebPages, Version=3.0.0.0, Culture=neutral,PublicKeyToken=31BF3856AD364E35" />
        <add assembly="System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral,PublicKeyToken=31BF3856AD364E35" />
        <!--add assembly="System.Web.Http, Version=5.1.0.0, Culture=neutral,PublicKeyToken=31BF3856AD364E35" /-->
        <!--add assembly="System.Web.Http.WebHost, Version=5.1.0.0, Culture=neutral,PublicKeyToken=31BF3856AD364E35" /-->
        <!--add assembly="System.Net.Http.Formatting, Version=5.1.0.0, Culture=neutral,PublicKeyToken=31BF3856AD364E35" /-->
      </assemblies>
    </compilation>

最佳答案

在站点的 web.config 中的程序集节点中注释掉以下三行可以解决该问题。

<!--add assembly="System.Web.Http, Version=5.1.0.0, Culture=neutral,PublicKeyToken=31BF3856AD364E35" /-->
<!--add assembly="System.Web.Http.WebHost, Version=5.1.0.0, Culture=neutral,PublicKeyToken=31BF3856AD364E35" /-->
<!--add assembly="System.Net.Http.Formatting, Version=5.1.0.0, Culture=neutral,PublicKeyToken=31BF3856AD364E35" /-->

关于asp.net-mvc-5 - 使用 Glass Mapper 的 Sitecore 8 可编辑字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29306768/

相关文章:

jquery - 在同一页面添加多个星级

.net - 基于 OWIN 在 MVC 5 中为多个 Web 应用程序设置表单例份验证

sitecore - 升级到 Sitecore 8 后内容编辑器出现错误

Sitecore:Glass Mapper 代码优先

jquery - Asp.net MVC 5 Ajax POST 在应用程序发布后抛出异常 404(未找到)

javascript - 如何在 JavaScript 中从 Razor 模型对象获取 JSON 对象

Sitecore 多个站点 - 使用带有 hostName 属性的通配符

c# - Sitecore:以编程方式将工作流分配给项目

c# - 为什么所有 Glass.Mapper 字段都应该是虚拟的?

c# - Glass.Mapper 不在 BeginRenderLink 方法中应用附加参数