将数据(简单字符串)从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
答案 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()
方法。