ViewBag类似于JavaScript的语法,在赋值时动态赋值,比如ViewBag.Dog=“哈哈” ,这样就会创建一个ViewBag.Dog的对象,供前端页面调用。
在调用时,前台页面用razor方式,@ViewBag 直接使用。
public class HomeController : Controller { List<Dog> dogList = null; public List<Dog> InitDate() { dogList = new List<Dog>{ new Dog(){Id=1,Name="A1"}, new Dog(){Id=2,Name="A2"} }; return dogList; } public ActionResult Index() { System.Text.StringBuilder strHtml=new System.Text.StringBuilder(); List<Dog> list = InitDate(); list.ForEach(d => { strHtml.Append("<div>" + d.Name + "</div>"); }); ViewBag.DogStr = strHtml.ToString() ; return View(); } }
如果直接在前端页面用@ViewBag输出,会连<DIV>标签一起输出,
所以需要使用 @Html.Raw(ViewBag.DogStr) 输出,这样浏览器会将字符串中的<DIV>标签格式化成HTML代码。