剃刀 - @ Html.Raw()仍在编码& 在元标记属性中

ddi*_*ver 8 asp.net-mvc razor asp.net-mvc-3 asp.net-mvc-4

当我使用@ Html.Raw(mystring)normal时,它会正确呈现示例:

@{ ViewBag.Title = "My Site®"; }
<title>@Html.Raw(ViewBag.Title)</title>
Run Code Online (Sandbox Code Playgroud)

将正确渲染<title>My Site&reg;</title>,但当我在属性中使用它时:

<meta name="description" content="@Html.Raw(ViewBag.Title)" />
Run Code Online (Sandbox Code Playgroud)

它呈现<meta name="description" content="My Site&amp;reg;" />哪些不正确,因为它不会呈现注册标记.

你如何纠正这种行为?

Jus*_*son 8

正如patridge在他的回答中指出的那样,你可以在参数中包含属性标记.Raw.

在您的情况下,将导致类似于以下内容:

<meta name="description" @Html.Raw("content=\"My Site&amp;reg;\"") />
Run Code Online (Sandbox Code Playgroud)