gpt4 book ai didi

c# - asp.net mvc - 包含元关键字和描述等 SEO 信息的策略

转载 作者:IT王子 更新时间:2023-10-29 04:17:55 27 4
gpt4 key购买 nike

我想知道如果有的话,什么是在 ASP.NET MVC(我使用的是 v3 RC) View 中包含 SEO 内容(例如元描述和关键字)的最佳实践。我最初的计划是创建一个 Action 过滤器,全局应用于 Action ,从数据存储中提取相关数据并将其作为 View 数据传递给 View 。

我的问题是:1) 你预见到这种方法有什么问题吗?2)有没有更合适的方法?3) 什么是适合在这里使用的数据存储 - 我应该从数据库中提取数据(如果数据可用则缓存)、使用资源文件、配置文件等?

提前致谢

日本

最佳答案

我会在我的 Controller 操作上使用属性,并将它们添加到方法 OnExecutingAction 中我的基本 Controller 中的 ViewData

将它放在 Controller 而不是 View 中的动机是,它实际上是关于实际操作的信息,而不是关于 View 的信息。您可以在返回不同类型的格式(如 json 或 xml)时使用它。

Controller

class MyController
{

[MetaKeywords("hello,world,something,else")]
[MetaDescription("Tells you how to greet the world")]
ActionResult Hello()
{
return View();
}
}

您始终可以使用资源文件而不是纯字符串。

在基础 Controller 中:

    protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
var keywords = filterContext.ActionDescriptor.GetCustomAttributes(typeof(MetaKeywordsAttribute), false);
if (keywords.Length == 1)
ViewData["MetaKeywords"] = keywords.Value;

var description = filterContext.ActionDescriptor.GetCustomAttributes(typeof(MetaDescriptionAttribute), false);
if (description.Length == 1)
ViewData["MetaDescription"] = description.Value;

base.OnActionExecuting(filterContext);
}

在你的布局中

<meta name="keywords" value="@View.MetaKeywords" />

这里是您问题的答案:=)

1) Do you foresee any problems with this approach?

没有。这是一个很好的方法。

2) Are there any more suitable approaches?

只是给了你一个选择。

3) what is an appropriate data store to use here - should i pull from the DB (or cache if the data is available), use resource files, config files, etc?

我会把它放在纯文本中(如果您不必支持多种语言),否则放在资源文件中。除非更改 View 或 Controller (无论如何都需要重新编译),否则此信息通常不会更改。因此不需要更动态的来源。

关于c# - asp.net mvc - 包含元关键字和描述等 SEO 信息的策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4263568/

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