先定義一個Model類Student
namespace Lession.Models { public class Student { public string Name { get; set; } public int Age { get; set; } public string Sex { get; set; } } }
控制器如下:
using Lession.Models; using Microsoft.AspNetCore.Mvc; namespace Lession.Controllers { public class TestController : Controller { public IActionResult Index() { ViewData["name"] = "kxy"; ViewData["sex"] = "男"; ViewData["age"] = 22; ViewBag.Name = "kxy"; ViewBag.Sex = "男"; ViewBag.Age = 22; Student student = new Student() { Name="kxy",Age=22,Sex="男"}; return View(student); } } }
視圖如下:
<body> @*ViewData是進行靜態數據傳遞*@ @ViewData["name"] @ViewData["sex"] @ViewData["age"] <br /> @*ViewBag是對ViewData的封裝,進行動態數據傳遞*@ @ViewBag.Name @ViewBag.Sex @ViewBag.Age <br /> @*Model也是進行動態數據傳遞,需要控制器return一個model*@ @Model.Name @Model.Age @Model.Sex </body>
在這里,可以對Model進行類型定義,在視圖上方加入
@model Lession.Models.Student
這樣,就可以在書寫Model的時候自動補全屬性
也可以使用后台語法添加控件,並利用model顯示數據
@*使用后台語法添加控件,利用lambda表達式輸出內容,這里的m指的就是上面定義的model*@ @Html.TextBoxFor(m => m.Name) @Html.TextBoxFor(m => m.Sex) @Html.TextBoxFor(m => m.Age)
且這個控件的Id和Name屬性的值均為Student對應的屬性名稱
即
@Html.TextBoxFor(m => m.Name)
對應生成
<input id="Name" name="Name" type="text" value="kxy">
2.特性DisPlayName
這個特性可以添加在類的屬性上面,做屬性名稱解釋
如:在Name上面添加特性DisPlayName
using System.ComponentModel;
namespace Lession.Models { public class Student { [DisplayName("這里是kxy的名字")] public string Name { get; set; } public int Age { get; set; } public string Sex { get; set; } } }
視圖代碼:
@*輸出屬性的特性DisplayName*@
@Html.LabelFor(m => m.Name)
結果:
編譯生成:<label for="Name">這里是kxy的名字</label>