• Core Mvc传值ViewData、ViewBag和return view(model)


    https://www.cnblogs.com/wskxy/p/9318123.html

    先定义一个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>

  • 相关阅读:
    Java8之Consumer接口
    Java8之Cloneable接口
    Java基础之Iterator接口
    Java基础之Iterable接口
    WPF中窗体在同一个位置实现不同页面切换
    WPF中单选框RadioButton
    WPF中的TextBlock处理长字符串
    WPF中Canvas使用
    WPF中窗体调用窗体
    WPF中HyperLink超链接的使用
  • 原文地址:https://www.cnblogs.com/wfy680/p/12230237.html
Copyright © 2020-2023  润新知