MVC 3 为多文化网站构建动态元关键字元描述功能

发布于 2024-10-16 21:31:41 字数 109 浏览 1 评论 0原文

我需要创建数据库驱动的元关键字/描述。我会将这些记录存储在数据库中,我认为是 xml 格式;因为它是针对每种文化的。

我该怎么做呢?

任何反馈、建议、帮助,非常感谢。 谢谢

I need to create db driven meta keywords/description. I would store these records in a database, xml format i presume; since it would be per culture.

How would i go about doing this?

any feedback, suggestions, help, greatly appreciated.
thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

錯遇了你 2024-10-23 21:31:41

您需要更改的只是对返回 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 ">

What you need to change is just the call to method that returns the keywork/description

You can use Thread.CurrentThread.CurrentUICulture to determine the user culture.

You need to change at web.config to auto change the culture.

Ex.:
(Web.Config)

<globalization uiCulture="auto" culture="auto" />

(Controller)

ViewBag.Description = GetDescription(pageId, Thread.CurrentThread.CurrentUICulture.Name)

(View)

<meta name="description" content="@ViewBag.Description ">
波浪屿的海角声 2024-10-23 21:31:41

为所有模型对象创建一个父接口。您可以:

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 %>" />

希望它有帮助。

Make a parent interface for all your model objects. and you could have:

public interface IBaseMasterViewDto
{
    int PageId { get; set; }
    string Title { get; set; }
    string MetaKeywords { get; set; }
    string MetaDescription { get; set; }
}

Thus in your master view you could use

<%@ 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 %>" />

Hope it helps.

放手` 2024-10-23 21:31:41

Shane,

不久前我在这里回答了一个有点类似的问题。我没有涉及文化元素,但 fujiy 上面的答案在某种程度上涉及到这一点。此外,alexl 的界面对于松散类型的视图数据元素来说是一个更好的解决方案(根据我在类似问题中的回答)。不管怎样,这就是我“当天”对这个问题的回答:

用于搜索引擎优化的 MVC 和元标记

Shane,

I answered a somewhat similar question here on SO a while back. I didn't cover the cultural elements, but fujiy's answer above goes towards that in a way. Also, alexl's interface is a FAR better solution to loose typed viewdata elements (as per my answer in the similar question). anyway, here's what i answered 'on the day' for that question:

MVC and Meta Tags for Search Engine Optimization

再可℃爱ぅ一点好了 2024-10-23 21:31:41

1 - 在控制器中获取关键字/描述(来自模型)
2 - 将它们分配给 Viewbag 属性
3 - 在布局(或视图)中显示 viewbag 属性

,或者

使用关键字/描述分配模型,并将其作为控制器中的参数提供给视图。

关于文化:
您只需将其作为参数放入您的方法控制器(以及您的路由中)即可。
之后,您必须将此参数提供给检索关键字/描述的方法。

1 - Get keywords/description (from your Model) in your controller
2 - Assign them to a Viewbag property
3 - Display the viewbag property in your layout (or view)

OR

Assign your model with keywords/description and give it to your view as a parameter in your controller.

About the culture :
You just have to put it as a parameter in your method controller (and in your route).
After that, you have to give this parameter to your method retrieving keywords/description.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文