一、Core MVC中控制器和視圖之間傳值方式和Asp.Net中非常類似
1.弱類型數據:ViewData,ViewBag
2.強類型數據:@model
二、代碼 實例
1.ViewData
public IActionResult Index() { //測試的 時候在Cummuty2017的最新版中右鍵添加視圖生成的 視圖文件的編碼 為ANSI對於中文顯示亂碼 //使用ViewData 實現 控制器 和 視圖之間傳值 /* * 1.ViewData指定鍵值對的方式設置或讀取 數據 * 2.ViewData獲取的結果都是object如果進行 運算等操作需要強制轉換 * 3.布局視圖的頁面標題 使用的是ViewData */ ViewData["menu_count"] = _context.Menu.Count(); return View(); }
<div class="alert alert-danger"> <p>當前菜單總數:@(ViewData["menu_count"])</p> <p>當前菜單總數:@((int)ViewData["menu_count"]*1000)</p> </div>
2.ViewBag
public ActionResult Test1() { //使用 ViewBag實現控制器 和視圖之間傳值 /* * 1.和Asp.Net MVC中的ViewBag使用相同,是dynamic類型 */ ViewBag.menu_count = _context.Menu.Count(); return View(); }
<div class="alert alert-danger"> <p>當前菜單總數:@(ViewBag.menu_count)</p> <p>當前菜單總數:@(ViewBag.menu_count* 1000)</p> </div>
3.@model
public ActionResult Test2() { //使用@model方式傳遞數據 List<Menu> list = _context.Menu.ToList(); return View(list); }
@using Core_Json.DBA @model List<Menu> @{ ViewData["Title"] = "Test2"; } <h2>Test2</h2> @{ <div class="list-group"> @foreach (var item in Model) { <div class="list-group-item">@item.MenuName <span class="badge">@item.AddTime</span></div> } </div> }
更多: