我刚在一家公司工作,我在_Layout.cshtml上看到了这样的代码
@if (ViewBag.LoadJQueryOnInit == true || ViewBag.EnableDevExpressView == true)
{
<script src="/Content/js/vendor/jquery-1.11.0.min.js"></script>
}我搜索了一下,但我真的不明白这段代码意味着什么?
发布于 2014-06-16 05:03:00
ViewBag是一个动态属性,它利用了C# 4.0中的新动态特性。
它基本上是检查ViewBag.LoadJQueryOnInit和ViewBag.EnableDevExpressView的值是否为真,然后呈现这个脚本标记,这将在页面上显示jquery。
如果您进入此视图的操作,您将看到这两个属性开始在那里设置,条件是true或false。
例如:
我在控制器操作中设置ViewBag:
public class TestController : Controller
{
//
// GET: /Test/
private static Users _users = new Users();
public ActionResult Index()
{
ViewBag.LoadJQueryOnInit = true;
ViewBag.EnableDevExpressView
return View(m);
}
}现在,考虑到这个操作,我将检查如果其中一个是真的,请包含jQuery库,因为它们依赖于jQuery库:
@if (ViewBag.LoadJQueryOnInit == true || ViewBag.EnableDevExpressView == true)
{
<script src="/Content/js/vendor/jquery-1.11.0.min.js"></script>
}您可以在ViewBag中放入任何东西,它的类型将在运行时由VuewBag解析,您可以放置字符串、int、复杂对象,任何时候都可以。
`ViewBag.AnyKey' = "SomeValue";您可以更详细地阅读有关它的内容:
http://weblogs.asp.net/hajan/viewbag-dynamic-in-asp-net-mvc-3-rc-2
http://www.codeproject.com/Articles/476967/WhatplusisplusViewData-cplusViewBagplusandplusTem
http://rachelappel.com/when-to-use-viewbag-viewdata-or-tempdata-in-asp.net-mvc-3-applications
https://stackoverflow.com/questions/24236865
复制相似问题