码迷,mamicode.com
首页 > Web开发 > 详细

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

时间:2020-01-23 11:15:10      阅读:109      评论:0      收藏:0      [点我收藏+]

标签:代码   类型   编译   ESS   models   img   using   play   pos   

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

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

标签:代码   类型   编译   ESS   models   img   using   play   pos   

原文地址:https://www.cnblogs.com/wfy680/p/12230237.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!