Dev*_*per 4 c# asp.net razor asp.net-mvc-5
我的控制器动作看起来像这样.
public ActionResult Sitemap()
{
Response.ContentType = "application/xml";
return View();
}
Run Code Online (Sandbox Code Playgroud)
我的视图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>
Run Code Online (Sandbox Code Playgroud)
我在浏览器中获取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.
Run Code Online (Sandbox Code Playgroud)
我已从View(Sitemap.cshtml)中删除了所有空格.但仍然是错误
我甚至尝试了这个并反转了如下所示的顺序,但仍然是错误.
<?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>
Run Code Online (Sandbox Code Playgroud)
它似乎是在标头之前发送空的空格或行,导致上述错误.布局为空,视图以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>
Run Code Online (Sandbox Code Playgroud)
我无法理解为什么?任何的想法?
我检查了以下但仍无法找到答案
我通过在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>
Run Code Online (Sandbox Code Playgroud)
感谢EvanSwd
| 归档时间: |
|
| 查看次数: |
1865 次 |
| 最近记录: |