Razor引擎可以解析Html.Encode(ViewData [“varname”])吗?

时间:2011-11-09 00:33:28

标签: asp.net-mvc

将数据(简单字符串)从Controller传递到我在控制器中的View:

 public ActionResult Create()
        {
            ViewData["user"] = System.Environment.UserName.ToUpper();
            return View();
        }

和我的cshtml

<h2>Welcome <%=Html.Encode(ViewData["user"]) %></h2>

我检查并确认用户名已填充,但是,它不会显示在页面上。

我做错了什么?

使用带有Razor的asp.net mvc 3

2 个答案:

答案 0 :(得分:4)

<h2>Welcome @ViewData["user"]</h2>

答案 1 :(得分:3)

那些鳄鱼标记(<%= %>)来自旧的ASP.NET视图引擎。

您需要使用Razor语法:

<h2>Welcome @Html.Encode(ViewData["user"])</h2>

但正如其他海报所指出的那样,Razor引擎更喜欢默认编码HTML,所以你只需要:

<h2>Welcome @ViewData["user"]</h2>

如果您希望对某些内容进行编码,请使用Html.Raw()方法。