加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

ASP.Net C#MVC5 Razor查看XML站点地图

发布时间:2020-12-16 07:19:59 所属栏目:asp.Net 来源:网络整理
导读:我的控制器动作看起来像这样. public ActionResult Sitemap() { Response.ContentType = "application/xml"; return View(); } 我的视图Sitemap.cshtml看起来像这样. @{Layout = null;}?xml version='1.0' encoding='UTF-8' ?urlset xmlns="http://www.googl
我的控制器动作看起来像这样.

public ActionResult Sitemap()
        {
            Response.ContentType = "application/xml";
            return View();
        }

我的视图Sitemap.cshtml看起来像这样.

@{Layout = null;}<?xml version='1.0' encoding='UTF-8' ?>
<urlset xmlns="http://www.google.com/schemas/sitemap/0.84"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemalocation="http://www.google.com/schemas/sitemap/0.84
http://www.google.com/schemas/sitemap/0.84/sitemap.xsd">
    <url>
        <loc>https://www.mywebsitename.com/home</loc>
        <lastmod>2006-12-12</lastmod>
        <changefreq>weekly</changefreq>
        <priority>1.00</priority>
    </url>
</urlset>

我在浏览器中获取ERROR页面(http:// localhost:50831 / Sitemap)

This page contains the following errors:

error on line 2 at column 6: XML declaration allowed only at the start of the document
Below is a rendering of the page up to the first error.

我已从View(Sitemap.cshtml)中删除了所有空格.但仍然是错误

我甚至尝试了this并反转了如下所示的顺序,但仍然出错.

<?xml version='1.0' encoding='UTF-8' ?>
@{    Layout = null;}
<urlset xmlns="http://www.google.com/schemas/sitemap/0.84"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemalocation="http://www.google.com/schemas/sitemap/0.84
http://www.google.com/schemas/sitemap/0.84/sitemap.xsd">
    <url>
        <loc>https://www.mywebsitename.com/home</loc>
        <lastmod>2006-12-12</lastmod>
        <changefreq>weekly</changefreq>
        <priority>1.00</priority>
    </url>
</urlset>

它似乎是在标头之前发送空的空格或行,导致上述错误.
布局为空,视图以xml标记开始,并从中获取空白空间.

页面源输出

----EMPTY LINE----
        <?xml version='1.0' encoding='UTF-8' ?>
        <urlset xmlns="http://www.google.com/schemas/sitemap/0.84"
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                xsi:schemalocation="http://www.google.com/schemas/sitemap/0.84
        http://www.google.com/schemas/sitemap/0.84/sitemap.xsd">
            <url>
                <loc>https://www.mywebsitename.com/home</loc>
                <lastmod>2006-12-12</lastmod>
                <changefreq>weekly</changefreq>
                <priority>1.00</priority>
            </url>
        </urlset>

我无法理解为什么?任何的想法?

我检查了以下但仍无法找到答案

How to create XML sitemap programmatically in c#

sitemaps.xml in asp.net mvc

ASP.NET Web.sitemap to Generate sitemap.xml

解决方法

我通过在Response.Write中添加XML标记来解决问题

@{   
    Response.Write("<?xml version='1.0' encoding='UTF-8' ?>");
    Layout = null;
    }
<urlset xmlns="http://www.google.com/schemas/sitemap/0.84"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemalocation="http://www.google.com/schemas/sitemap/0.84
http://www.google.com/schemas/sitemap/0.84/sitemap.xsd">
    <url>
        <loc>https://www.mywebsitename.com/home</loc>
        <lastmod>2006-12-12</lastmod>
        <changefreq>weekly</changefreq>
        <priority>1.00</priority>
    </url>
</urlset>

感谢EvanSwd

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读