【问题标题】:Unable to use <link> tag in Razor View无法在 Razor 视图中使用 <link> 标记
【发布时间】:2020-02-20 14:20:38
【问题描述】:

如果我使用以下代码,则视图呈现良好。 但是,如果我将 url 更改为必要的 RSS 规范。该视图将不会呈现并抛出一个错误,指出该标记无效,因此该错误发生在链接标记处。无论我尝试什么,razor foreach 中的链接标签都无法正确编译。

@inherits Umbraco.Web.Mvc.UmbracoTemplatePage<ContentModels.RSsfeed>
@using ContentModels = Umbraco.Web.PublishedContentModels;
@{ 
    Layout = null;
    Response.ContentType = "text/xml";
    var rootNode = Umbraco.TypedContentAtRoot().First();
    var newsNodes = umbraco.uQuery.GetNodesByType("newsDetail");
}<?xml version="1.0"?>
<!-- News Aritcles -->
<rss version="2.0" xmlns:newsArticles="https://xxx.xxxxxxx.xxx/news">
    <channel>
        <title>News Aritcles</title>
        <link>https://xxx.xxxxxxx.xxx/news</link>
        <description>News Aritcles</description>
        <language>en-us</language>
        <ttl>1440</ttl>
    @foreach(var newsNode in newsNodes){
        var newsContent = UmbracoContext.Current.ContentCache.GetById(newsNode.Id);
        string nnDescription = newsContent.GetPropertyValue("description").ToString();
        string nnPublishDate = newsContent.GetPropertyValue("publishDate").ToString();
        <item>
            <title>@newsNode.Name</title>
            <url>https://xxx.xxxxxxx.xxx@{@newsNode.Url}</url>
            <description>@nnDescription</description>
            <pubDate>@nnPublishDate</pubDate>
            <guid>https://xxx.xxxxxxx.xxx@{@newsNode.Url}</guid>
        </item>
    }
    </channel>
</rss>

【问题讨论】:

  • 网址中有@ 字符吗?你能告诉我们真正的错误代码吗?

标签: razor view hyperlink rss umbraco


【解决方案1】:

&lt;link/&gt; 是一个 void 元素,因此只有一个开始标签,没有结束标签 - 请参阅 W3C HTML Language Reference

你可以这样输出标签

@("<link>" + newsNode.Url + "</link>")

希望对你有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-09
    • 1970-01-01
    • 2011-10-06
    • 1970-01-01
    • 2019-05-14
    • 2023-04-03
    • 1970-01-01
    相关资源
    最近更新 更多