首页 \ 问答 \ Umbraco 7.2.8相关链接剃须刀显示(Umbraco 7.2.8 related links razor display)

Umbraco 7.2.8相关链接剃须刀显示(Umbraco 7.2.8 related links razor display)

我有一个文档类型,其中包含Umbraco 7.2.8中的相关链接

我想在视图中显示它,但HasValue为false,GetPropertyValue(“relatedLinks”)也是如此。

所以我看一下数据库中的节点,属性“relatedLinks”写成CData,而不是JSON:

  <relatedLinks><![CDATA[[
  {
    "caption": "Some caption",
    "link": 1163,
    "newWindow": false,
    "internal": 1163,
    "edit": false,
    "isInternal": true,
    "internalName": "Caption",
    "type": "internal",
    "title": "Link Title"
  }
]]]></relatedLinks>

据我所知,在这个umbraco版本中它应该写成JSON(例如,按照这里的例子https://our.umbraco.org/forum/developers/razor/54450-Related-Links-Razor-Macro-Umbraco- 7 )然后使用Razor轻松显示在视图上。

不知道我应该如何在Razor中使用CDATA片段?

或者如何强制cms将其写为JSON?


I have a document type which contains related links in Umbraco 7.2.8

I want to display it in a view but HasValue comes as false and GetPropertyValue("relatedLinks") come sempty as well.

So I took a look at the node in the database and the property "relatedLinks" is written as CData, not JSON:

  <relatedLinks><![CDATA[[
  {
    "caption": "Some caption",
    "link": 1163,
    "newWindow": false,
    "internal": 1163,
    "edit": false,
    "isInternal": true,
    "internalName": "Caption",
    "type": "internal",
    "title": "Link Title"
  }
]]]></relatedLinks>

As far as I know in this umbraco version it should be written as JSON (eg. as per example here https://our.umbraco.org/forum/developers/razor/54450-Related-Links-Razor-Macro-Umbraco-7) and then easy to display on a view using Razor.

Not sure how I am supposed to use CDATA snippet in Razor?

Or how to force the cms to write it as JSON?


原文:https://stackoverflow.com/questions/32680307
更新时间:2019-06-21 03:06

最满意答案

你试过用它作为JArray吗?

@using Newtonsoft.Json.Linq
@{      
    if (Model.Content.HasValue("relatedLinks") && Model.Content.GetPropertyValue<string>("relatedLinks").Length > 2)
    {
        <ul>
            @foreach (var item in Model.Content.GetPropertyValue<JArray>("relatedLinks"))
            {
                var linkUrl = (item.Value<bool>("isInternal")) ? Umbraco.NiceUrl(item.Value<int>("internal")) : item.Value<string>("link");
                var linkTarget = item.Value<bool>("newWindow") ? "_blank" : null;
                <li><a href="@linkUrl" target="@linkTarget">@(item.Value<string>("caption"))</a></li>
            }
        </ul>
    }
}  

https://our.umbraco.org/documentation/getting-started/backoffice/property-editors/built-in-property-editors/related-links


Have you tried using it as a JArray?

@using Newtonsoft.Json.Linq
@{      
    if (Model.Content.HasValue("relatedLinks") && Model.Content.GetPropertyValue<string>("relatedLinks").Length > 2)
    {
        <ul>
            @foreach (var item in Model.Content.GetPropertyValue<JArray>("relatedLinks"))
            {
                var linkUrl = (item.Value<bool>("isInternal")) ? Umbraco.NiceUrl(item.Value<int>("internal")) : item.Value<string>("link");
                var linkTarget = item.Value<bool>("newWindow") ? "_blank" : null;
                <li><a href="@linkUrl" target="@linkTarget">@(item.Value<string>("caption"))</a></li>
            }
        </ul>
    }
}  

https://our.umbraco.org/documentation/getting-started/backoffice/property-editors/built-in-property-editors/related-links

2015-09-21

相关问答

更多

Umbraco从子页面获取内容(Umbraco get content from child pages)

Umbraco.Content返回动态。 您需要获取第一行的IPublishedContent尝试: IPublishedContent currentPage = Umbraco.TypedContent(CurrentPage.Id); 那么问题是x.IsVisible()不起作用所以你需要使用: x.GetPropertyValue<bool>("isVisible") Umbraco.Content returns a dynamic. You need to get the IPub ...

Umbraco如何保护其内部CMS页面?(How does Umbraco secure it's internal CMS pages?)

查看Umbraco的公共访问 。 这是Umbraco用于保护页面的机制。 Umbraco为Umbraco用户(后端)和Umbraco成员(前端)使用单独的成员资格表,因此如果您希望用户访问某些页面,则必须两次添加用户。 您需要创建一个包含一些登录控件的登录页面。 您还需要一个“错误页面”,如果他们无权查看请求的页面,则基本上是用户将被发送到的页面。 MortenBockSørensen介绍了如何在博客文章中进行设置。 或者,您可以将要保护的内容放在后端的仪表板中。 您甚至可以将用户控件挂钩到仪表板 ...

Umbraco有没有好的电子商务扩展/插件?(Are there any good e-commerce extensions/plugins for Umbraco?)

我知道的唯一的其他包是umbraco商业 它看起来不像它已经在一段时间更新和Commerce4Umbraco接近第一个版本,所以probaby更好的选择。 我知道它将在Codegarden09 umbraco会议上亮相。 由于Umbraco基于.NET,因此您还可以使用现成的购物车,如dotNetCart或开发定制的定制产品。 当然,这将意味着单独的后端,但是如果需要,您可以轻松地将其后端添加到后端。 The only other package I'm aware of is umbraco c ...

如何根据我使用剃须刀的页面编写一些逻辑?(How can I write some logic based on what page I am on using razor?)

您可以从RouteData获取当前操作和控制器: @{ string controller = ViewContext.RouteData.GetRequiredString("controller"); string action = ViewContext.RouteData.GetRequiredString("action"); ... decide what to render } 但显然更好的方法是编写一个自定义HTML帮助程序,它将根据上下文生成正确的链接。 ...

在MVC剃须刀中显示一个模型列表(Show a list from a model in MVC razor)

是的,这完全有可能。 但是因为这是一个List<T> ,所以需要遍历它才能显示数据。 只需将你的数据包装在一个foreach循环中 @foreach (var item in Model.BranchHeads) { <tr> <td> @Html.DisplayFor(modelItem => item.BranchName)<br/> </td> <td> ...

取消发布使用过的UMBRACO节点会导致站点崩溃(Unpublishing used UMBRACO node causes site to crash)

据我所知,Umbraco不会在单独的表中保存节点之间的引用,因此没有标准选项来查看哪些节点引用了另一个节点。 但是,有一种方法可以通过在数据库表上使用查询来实现此目的。 Umbraco将文档类型字段的值保存在字段cmsPropertyData中的cmsPropertyData表中,nodeID保存在contentNodeId字段中 您可以挂钩Document.AfterUnPublish()或Document.BeforeUnPublish()事件并在cmsPropertyData表上运行查询以检 ...

通过Windows应用程序更新多个Umbraco站点(Update multiple Umbraco sites through windows application)

听起来像一个有趣的案例! 如果要迁移数据库中的项目(如文档类型,模板和宏),则很可能需要获取Courier等产品。 我可以看到,由于许可证成本,这对于拥有500多个站点的人来说可能是一个问题。 另一种选择可能是看看uSync ,看看它是否能满足您的需求。 我没有太多关于这个软件包的经验,但从它的外观来看,似乎它正在处理所有的数据库位 - 而其他一切(文件系统上的文件)将由你的应用程序处理,就像它现在一样。 Sounds like an interesting case! If you want t ...

在剃须刀视图中使用Html.DisplayFor应用css类(Applying css class using Html.DisplayFor inside razor view)

DisplayFor不能像其他工作*For帮手。 就像EditorFor一样,这就是所谓的“模板助手”。 换句话说,它呈现的是由可以修改的模板控制的。 重要的是,对于这两种方法,如果你在MSDN中查找他们的文档,你会发现这个参数与其他helper的htmlAttributes正常相对应,而是指向具有这两个参数的additionalViewData 。 这是因为它们的输出再次受到ViewData基本视图控制。 此外,特别是在DisplayFor中,默认模板几乎只输出值,而没有HTML。 例如,如果传 ...

相关文章

更多

最新问答

更多
  • Android宽度:100%修复(网站接管问题)(Android width:100% fix (website takeover issue))
  • C ++函数/方法设计的良好实践(Good practice in C++ function/method design)
  • 计算其他表中不存在的所有记录 - SQL查询(Count all records that does not exist to other table - SQL Query)
  • 为什么我要用JPA共享ID?(Why do I get shared Ids with JPA?)
  • asp.net - 如何显示来自html格式的数据行的字段(asp.net - how to display a field from data row that is in html format)
  • 我们如何使用ActiveRecord从连接表中删除行?(How can we delete rows from a join table by using ActiveRecord?)
  • ng-class搞乱了类的顺序(ng-class messing with the order of classes)
  • oracle 12g无效数字错误(oracle 12g invalid number error)
  • 更改ng-src值onclick(Change ng-src value onclick)
  • 如何在android中自动添加自定义依赖项以创建新项目?(How to add custom dependencies automatically in android for ever a new project is created?)
  • datetime函数在PHP中(datetime function in php)
  • 在javascript中获取会话数组的值(in javascript get the value of a session array)
  • 如何在UTF8中编译LaTeX?(How can I compile LaTeX in UTF8? [closed])
  • Rspec:“array.should == another_array”,但不用担心订单(Rspec: “array.should == another_array” but without concern for order)
  • Logcat错误:无法在android片段中加载视图(Logcat error: unable to load view in android fragments)
  • JavaFX的。(JavaFX. Adding items to the list in different threads is not working)
  • 从GDATA日历资源迁移到Google Calendar Resource api(Migrate from GDATA calendar resource to Google Calendar Resource api)
  • SSRS 2008 - 以零情景处理分割(SSRS 2008 - Dealing with division by zero scenarios)
  • 我如何以编程方式添加一个listView列标题的点击事件(How can I add a listView column header a click event programmatically)
  • Wxpython:无法检索有关列表控件项XXX的信息(Wxpython: Couldn't retrieve information about list control item XXX)
  • 使用Tortoise SVN在SVN存储库中移动目录(Move Directory across SVN repository using Tortoise SVN)
  • 天蓝色服务结构集群中的web api无状态服务是否在一段时间不活动后进入休眠状态?(Do web api stateless services in azure service fabric cluster go to sleep after a period of inactivity?)
  • 我可以设置intelliJ来突出显示PHP编码风格吗?(Can I set intelliJ to highlight php coding style?)
  • 用javafx创建一个Truetype字体文件(Creating a Truetype Font file with javafx)
  • Spring ftp配置错误(Spring ftp configuration is wrong)
  • 使用gsub去除多个字符(Using gsub to strip multiple characters)
  • 续订推送证书并保持当前的App Store App正常工作(Renew Push certificate and keep current App Store App working)
  • js:ES5和ES6之间关于'this'关键字用法的一个令人困惑的观点(js: one confusing point about 'this' keyword usage between ES5 and ES6)
  • window.onload vs $(document).ready()(window.onload vs $(document).ready())
  • 在Swift中,如何声明一个符合一个或多个协议的特定类型的变量?(In Swift, how can I declare a variable of a specific type that conforms to one or more protocols?)