我有一些客户端可以使用AJAX或非AJAX请求请求它们的页面,并且为了SEO目的,我需要使用Javascript动态更改AJAX请求的元标记(现在看来是可能的)但我不知道什么是最佳实践这样做?
我的第一个解决方案是这样的:
的观点:
@{
var title = "title";
var keywords = "p1,p2";
var description = "des";
if (Request.IsAjaxRequest()) { Layout = null; }//else i have a default layout for that!
}
@section metas{
<title>@title</title>
<meta id="keywords" name="keywords" content="@keywords">
<meta id="description" name="description" content="@description">
}
<div id="main">
@{
if (@Request.IsAjaxRequest())
{
<script>
document.title = "@title";
document.getElementById('keywords').setAttribute("content", "@keywords");
document.getElementById('description').setAttribute("content", "@description");
</script>
}
}
...
_layout:
<head>
<meta charset="UTF-8">
@RenderSection("metas", required: false)
...
<div class="content">
@RenderBody()
....
(视图将作为响应数据发送,并将为id =“content”重写div的内容以用于AJAX请求。)
看起来工作正常,但我不确定这是一个很好的解决方案。
任何帮助欣赏!。