• 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() { 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>

     
  • 相关阅读:
    关于一个简单面试题(。net)
    写一个TT模板自动生成spring.net下面的配置文件。
    EF自动生成的(T4模板) 关联属性元数据修改
    关于面向切面编程的部分内容-错误处理机制
    memcache 安装
    Newtonsoft.Json工具类
    关于Memcache使用的工具类
    关于 Log4Net
    今天开始写博客
    OC 协议
  • 原文地址:https://www.cnblogs.com/wskxy/p/9318123.html
Copyright © 2020-2023  润新知