Viewbag检查项目是否存在并写出html和值错误

Die*_*xel 36 c# asp.net-mvc viewbag

我正在使用剃刀语法,我想在我吐出html之前检查是否设置了某些ViewBag值.如果设置了一个值,那么我想写出来.如果不是,我希望它什么都不做.

@if (ViewBag.UserExists != null) 
   { Response.Write(String.Format("<h3>{0}</h3>", ViewBag.UserExists)); }
Run Code Online (Sandbox Code Playgroud)

这似乎无法正常工作.代码显示在我上面的代码之上的另一个h2之上.我有两个寄存器控制器方法.一个是获取,另一个是接受帖子.如果用户存在,我正在设置需要向用户显示的ViewBag项.

谢谢

lah*_*rah 92

不要使用Response.Write.而是这样做:

@if (ViewBag.UserExists != null)
{
    <h3>@ViewBag.UserExists</h3>
}
Run Code Online (Sandbox Code Playgroud)

  • 不要使用Html.Raw,除非你期望它是安全的HTML,否则你暴露自己暴露.如果你是Razor的新手,一个好的经验法则是如果你正在编写`Response.Write("...")`那么你做错了. (2认同)