我的 Controller 操作看起来像这样。
public ActionResult Sitemap()
{
Response.ContentType = "application/xml";
return View();
}
My 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>
我在浏览器中遇到页面错误 (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>
它似乎在导致上述错误的标题之前发送了空格或行。 布局为 null, View 以 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>
我无法理解为什么?有什么想法吗?
我检查了以下但仍然找不到答案
最佳答案
我通过在 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
关于c# - ASP.Net C# MVC5 Razor 查看 XML 站点地图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26910044/