MVC 3 为多元文化网站构建动态元关键字元描述功能
Posted
技术标签:
【中文标题】MVC 3 为多元文化网站构建动态元关键字元描述功能【英文标题】:MVC 3 building dynamic meta keywords meta description functionality for multi-culture site 【发布时间】:2011-02-10 07:09:51 【问题描述】:我需要创建数据库驱动的元关键字/描述。我会将这些记录存储在数据库中,我认为是 xml 格式;因为这将是每种文化。
我该怎么做呢?
任何反馈、建议、帮助,非常感谢。 谢谢
【问题讨论】:
【参考方案1】:你需要改变的只是对返回keywork/description的方法的调用
您可以使用 Thread.CurrentThread.CurrentUICulture 来确定用户文化。
您需要在 web.config 中进行更改以自动更改文化。
例如: (Web.Config)
<globalization uiCulture="auto" culture="auto" />
(控制器)
ViewBag.Description = GetDescription(pageId, Thread.CurrentThread.CurrentUICulture.Name)
(查看)
<meta name="description" content="@ViewBag.Description ">
【讨论】:
+1 - 与 alexl 的方法组合使用,你会有一个非常好的通用方法 你能给我一些关于将这些记录存储在数据库中的信息吗?会是xml吗?还是每种语言 => 每条记录?谢谢 这是一个实现细节,但可以是一个包含 5 列的表:Id(PK)、PageId、CultureName、关键字和描述。 PageId 取决于您管理页面的方式。如果您有 CMS,则可以是您页面的 Url 或 Id【参考方案2】:为所有模型对象创建一个父接口。你可以:
public interface IBaseMasterViewDto
int PageId get; set;
string Title get; set;
string MetaKeywords get; set;
string MetaDescription get; set;
因此,在您的主视图中,您可以使用
<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage<IBaseMasterViewDto>" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<title><%: Model.Title %></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="keywords" content="<%: Model.MetaKeywords %>" />
<meta name="description" content="<%: Model.MetaDescription %>" />
希望对你有帮助。
【讨论】:
+1 alex - 我自己使用非常相似的方法。这个 plas fujiy 的答案的结合将是两者中最好的。【参考方案3】:肖恩,
不久前,我在这里回答了一个类似的问题。我没有涵盖文化元素,但上面 fujiy 的回答在某种程度上是这样的。此外,alexl 的界面是松散类型视图数据元素的更好解决方案(根据我在类似问题中的回答)。无论如何,这就是我对那个问题的“当天”回答:
MVC and Meta Tags for Search Engine Optimization
【讨论】:
【参考方案4】:1 - 在您的控制器中获取关键字/描述(来自您的模型) 2 - 将它们分配给 Viewbag 属性 3 - 在布局(或视图)中显示 viewbag 属性
或
为您的模型分配关键字/描述,并将其作为控制器中的参数提供给您的视图。
关于文化: 您只需将其作为参数放入您的方法控制器(以及您的路线)中。 之后,您必须将此参数提供给检索关键字/描述的方法。
【讨论】:
以上是关于MVC 3 为多元文化网站构建动态元关键字元描述功能的主要内容,如果未能解决你的问题,请参考以下文章