Core Mvc传值ViewData、ViewBag和return view(model)
2021-04-25 05:28
阅读:725
先定义一个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); } } }
视图如下:
@*ViewData是进行静态数据传递*@ @ViewData["name"] @ViewData["sex"] @ViewData["age"]
@*ViewBag是对ViewData的封装,进行动态数据传递*@ @ViewBag.Name @ViewBag.Sex @ViewBag.Age
@*Model也是进行动态数据传递,需要控制器return一个model*@ @Model.Name @Model.Age @Model.Sex
在这里,可以对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)
对应生成
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)
结果:
编译生成:
文章来自:搜素材网的编程语言模块,转载请注明文章出处。
文章标题:Core Mvc传值ViewData、ViewBag和return view(model)
文章链接:http://soscw.com/essay/79276.html
文章标题:Core Mvc传值ViewData、ViewBag和return view(model)
文章链接:http://soscw.com/essay/79276.html
评论
亲,登录后才可以留言!