Core Mvc传值ViewData、ViewBag和return view(model)
先界说一个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() {,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 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>
Core Mvc传值ViewData、ViewBag和return view(model)
温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/31075.html