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>

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

时间: 2024-10-12 00:16:21

Core Mvc传值ViewData、ViewBag和return view(model)的相关文章

Core Mvc传值Request和HttpContext

1.传值方法 使用Request的方法(1-3): 1)Query:获取链接?后面的值 如:http://localhost:55842/Home/About?name=kxy public IActionResult About() { ViewData["Message"] = "Your application description page."; //-------------------------Request---------------------

ASP.NET Core 入门教程 5、ASP.NET Core MVC 视图传值入门

原文:ASP.NET Core 入门教程 5.ASP.NET Core MVC 视图传值入门 一.前言 1.本教程主要内容 ASP.NET Core MVC 视图引擎(Razor)简介 ASP.NET Core MVC 视图(Razor)ViewData使用示例 ASP.NET Core MVC 视图(Razor)ViewBag使用示例 ASP.NET Core NVC 视图(Razor)强类型传值(ViewModel)页示例 2.本教程环境信息 软件/环境 说明 操作系统 Windows 10

MVC 强类型传值Model。和弱类型传值ViewData[&amp;quot;&amp;quot;]。及用EF进行增删查改(母版页的使用)

<1> 控制器 </pre><pre name="code" class="csharp">using MvcTest.Models; using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; namespace MvcTest.Controllers { public cla

mvc中viewdata 和viewbag的区别

mvc中viewdata 和viewbag的区别 2013-06-18 15:43:45|  分类:          MVC                          |举报        |字号 订阅 ViewData                                                                           ViewBag 它是Key/Value字典集合                                     

ASP.NET MVC中ViewData、ViewBag和TempData

1.ViewData 1.1 ViewData继承了IDictionary<string, object>,因此在设置ViewData属性时,传入key必须要字符串型别,value可以是任意类型. 1.2 ViewData它只会存在这次的HTTP要求而已,而不像Session可以将数据带到下HTTP要求. public class TestController : Controller { public ActionResult Index() { ViewData["msg&quo

MVC 强类型ViewData[] TempData[]

一.ViewData[] //赋值 ViewData["u"]="值"; //取值 数据类型 u= ViewData["u"] as 数据类型 //数据类型强转 二.ViewBag Users u = new Users(); //赋值 ViewBag.hehe = u;//hehe是自己随意起的名称 //取值 Users u = ViewBag.hehe as Users;//强转数据类型 三.TempData[] 像Session一样使用,效

MVC 传值

MVC 各种传值方式 ViewData传值.HomeController.cs Co de: public ActionResult Index(){      ViewData["Title" ] = "Home Page" ;     ViewData["Message" ] = "Welcome to ASP.NET MVC!" ;     return View();} Views/Home/Index.aspx Co

控制器向视图中传值ViewData详解

1.将一个字符串传值到视图中 在action中我们将字符串保存在ViewData(或ViewBag [asp.net 3或以上才可用])中代码如下: public ActionResult Index()        {            ViewData["str1"]= "这是一个字符串"; //也可以使用ViewBag来传递值 ViewBag.str2="这是另外一个字符串"; return View();        } 在视图中

Entity Framework Core系列之实战(ASP.NET Core MVC应用程序)

本示例演示在ASP.NET 应用程序中使用EF CORE创建数据库并对其做基本的增删改查操作.当然我们默认你的机器上已经安装了.NET CORE SDK以及合适的IDE.本例使用的是Visual Studio Code. 创建一个ASP.NET Core 应用程序 如果你电脑上安装了VS2015或者更高版本,就可以使用项目模板创建一个ASP.NET Core application,或者可以使用命令行工具创建项目.在本例中我们将在Visual Studio Code 中使用命令行工具: 第一步: