gpt4 book ai didi

c# - 为 mvc3 webapplication 自动生成规范

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:27:00 27 4
gpt4 key购买 nike

我想在我的网站中使用规范网址。我在互联网上阅读了一些关于它的内容,但我正在寻找一种解决方案,它会自动为我生成规范运行时并将其添加到返回浏览器的 html 代码中。

我已经在 Internet 上找到了一个使用属性的示例,但这不是我要找的。使用一个属性,我仍在决定哪个页面应该获得规范或不是我自己,我希望每个页面都自动生成一个。我认为应该有(现有的)解决方案吗?我正在努力寻找一个好的例子来处理,所以任何帮助都将不胜感激。

最佳答案

对于 Razor :

我为 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));
}

获取当前网址

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));
}

调用 Razor View :

@Html.CanonicalUrl()

关于c# - 为 mvc3 webapplication 自动生成规范,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5396724/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com