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代码。