我正在学习ASP.net MVC 4,我已经了解了MVC模式和逻辑。我从互联网上完成了一些教程,我发现人们在Controller类中混合了这两个符号“ViewBag”和“@ViewBag”。所以我在使用'@ViewBag'和/或'ViewBag'时有点困惑。它们之间有区别吗?或者我可以自由选择在编码时使用哪种符号?
检查此Controller类代码:
public ActionResult Index()
{
ViewBag.Weights = new List<string>(weightLst);
@ViewBag.Statuses = new List<Status>(statuses);
return View();
}
答案 0 :(得分:4)
查看Introduction to ASP.NET Web Programming Using the Razor Syntax:
@字符开始内联表达式,单个语句块, 和多语句块
因此,@
字符用于向页面添加代码。如果您不在代码块中,那么您应该使用此符号将Razor视为代码{(1)开始内联表达式。以下代码将呈现ViewBag
的值:
ViewBag.Title
如果您已经在代码块中,那么您不需要 <div>@ViewBag.Title</div>
将ViewBag视为代码:
@
如果您不在代码块中,那么在没有@foreach(var item in ViewBag.Items) {
<div>@item</div>
}
的情况下,Razor会将@
视为简单文本。以下代码将在页面上呈现ViewBag
字符串:
"ViewBag.Title"
答案 1 :(得分:1)
@ViewBag和ViewBag是一回事:“@”来自Razor /代码实现:如果你在@{}
块中,则不需要在ViewBag之前添加它。
在ASP网站上查看更多内容.. http://www.asp.net/web-pages/tutorials/basics/2-introduction-to-asp-net-web-programming-using-the-razor-syntax
答案 2 :(得分:0)
每个人的用法都不同。请参阅this。
答案 3 :(得分:-1)
在View
中,您可以使用必须以“@”符号开头的内联表达式来引用ViewBag
。例如,要显示ViewBag
...
<p>@ViewBag.MyValue
您还可以在ViewBag
的{{1}}方法中引用(设置或获取)Action
属性值。例如,要在Controller
方法中设置值...
Action