使用控制器操作将元描述标签添加到html头?

时间:2014-05-09 11:58:41

标签: asp.net-mvc meta-tags

如何使用控制器操作在html头中的元描述标记<meta name="description">中添加值?

    public ActionResult Details(int id = 0, string name = "")
    {

        Category category = db.Categories.Find(id);

        string seodescription = string.Empty;

        switch (id)
        {
            case 1: { seodescription = "1"; break; }
            case 2: { seodescription = "2"; break; }
            case 3: { seodescription = "3"; break; }
            case 4: { seodescription = "4"; break; }
            case 5: { seodescription = "5"; break; }
            case 8: { seodescription = "6"; break; }
            default: {seodescription = string.Empty; break;}
        }

        if (seodescription != string.Empty)
        {
             // here
        }

   }

2 个答案:

答案 0 :(得分:4)

您可以在ViewBag中传递说明:

ViewBag.MetaDescription = "Description to use";

在视图中渲染&lt; meta&gt;标签

由于您可能正在使用Layouts并且元标记位于标题中,因此您应该将代码放在“布局”页面中:

@if (ViewBag.MetaDescription != null) {
     <meta name="description" content="@ViewBag.MetaDescription">
}

答案 1 :(得分:1)

这是另一种方式,仅供参考:

将它放在你的布局文件中

@RenderSection("meta", required: false)

然后在你的观点中:

@section meta{
   <meta name="description" content="Content from either the view model or just plain text">
}

在某些情况下,这种方法可以更好地为您提供服务,例如,如果您希望前端人员能够编辑标签。