Rob*_*Rob 13 c# asp.net seo asp.net-mvc-3
我想在我的网站上使用规范网址.我在互联网上阅读了一些关于它的内容,但我正在寻找一种解决方案,它将自动为我的运行时生成规范并将其添加到返回浏览器的html代码中.
我已经在互联网上找到了一个使用属性的例子,但这不是我想要的.使用属性我仍然决定哪个页面应该是规范或不是我自己,我希望每个页面都有一个自动生成的页面.我认为应该有(现有的)解决方案吗?我正在努力寻找一个好的榜样,所以任何帮助都会受到赞赏.
Bru*_*oLM 22
对于剃刀:
我做了一个扩展方法HtmlHelper
:
public static MvcHtmlString CanonicalUrl(this HtmlHelper html, string path)
{
if (String.IsNullOrWhiteSpace(path))
{
var rawUrl = html.ViewContext.RequestContext.HttpContext.Request.Url;
path = String.Format("{0}://{1}{2}", rawUrl.Scheme, rawUrl.Host, rawUrl.AbsolutePath);
}
path = path.ToLower();
if (path.Count(c => c == '/') > 3)
{
path = path.TrimEnd('/');
}
if (path.EndsWith("/index"))
{
path = path.Substring(0, path.Length - 6);
}
var canonical = new TagBuilder("link");
canonical.MergeAttribute("rel", "canonical");
canonical.MergeAttribute("href", path);
return new MvcHtmlString(canonical.ToString(TagRenderMode.SelfClosing));
}
Run Code Online (Sandbox Code Playgroud)
获取当前URL
public static MvcHtmlString CanonicalUrl(this HtmlHelper html)
{
var rawUrl = html.ViewContext.RequestContext.HttpContext.Request.Url;
return CanonicalUrl(html, String.Format("{0}://{1}{2}", rawUrl.Scheme, rawUrl.Host, rawUrl.AbsolutePath));
}
Run Code Online (Sandbox Code Playgroud)
调用Razor View:
@Html.CanonicalUrl()
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5009 次 |
最近记录: |