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"] = ; ViewBag.Name = "kxy";
ViewBag.Sex = "男";
ViewBag.Age = ; Student student = new Student() { Name="kxy",Age=,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)的更多相关文章
- Core Mvc传值Query、Form、Cookies、Session、TempData、Cache
1.传值方法 使用Request的方法(1-3): 1)Query:获取链接?后面的值 如:http://localhost:55842/Home/About?name=kxy public IAct ...
- 几句话说明 .NET MVC中ViewData, ViewBag和TempData的区别
ViewData和TempData是字典类型,赋值方式用字典方式, ViewData["myName"] ViewBag是动态类型,使用时直接添加属性赋值即可 ViewBag.my ...
- Asp.Net Core MVC传值 Asp.Net Core API 前台写法
$("#Add_User").click(function () { var obj = { //"属性名": 传递的值, "User_Name&qu ...
- ASP.NET Core 入门教程 5、ASP.NET Core MVC 视图传值入门
一.前言 1.本教程主要内容 ASP.NET Core MVC 视图引擎(Razor)简介 ASP.NET Core MVC 视图(Razor)ViewData使用示例 ASP.NET Core MV ...
- ASP.NET Core 入门笔记6,ASP.NET Core MVC 视图传值入门
摘抄自:https://www.cnblogs.com/ken-io/p/aspnet-core-tutorial-mvc-view-renderdata.html 如有侵权请告知 一.前言 1.本教 ...
- 007.Adding a view to an ASP.NET Core MVC app -- 【在asp.net core mvc中添加视图】
Adding a view to an ASP.NET Core MVC app 在asp.net core mvc中添加视图 2017-3-4 7 分钟阅读时长 本文内容 1.Changing vi ...
- MVC 强类型传值Model。和弱类型传值ViewData[""]。及用EF进行增删查改(母版页的使用)
<1> 控制器 </pre><pre name="code" class="csharp">using MvcTest.Mo ...
- 创建ASP.NET Core MVC应用程序(1)-添加Controller和View
创建ASP.NET Core MVC应用程序(1)-添加Controller和View 参考文档:Getting started with ASP.NET Core MVC and Visual St ...
- ASP.NET MVC中viewData、viewBag和templateData的区别
在MVC3开始,视图数据可以通过ViewBag属性访问,在MVC2中则是使用ViewData.MVC3中保留了ViewData的使用.ViewBag是动态类型(dynamic),ViewData是一个 ...
随机推荐
- 关于xshell 无法连接虚拟机之我的解决方案
先说一下我碰到的问题 1,虚拟机配置网络后,并且选的模式是桥接模式,虚拟机中可以访问外网,宿主机中也可以访问外网,虚拟机中可以ping通宿主机,但是宿主机无法ping通虚拟机 解决: 我的原因:我会出 ...
- 第二十节,使用RNN网络拟合回声信号序列
这一节使用TensorFlow中的函数搭建一个简单的RNN网络,使用一串随机的模拟数据作为原始信号,让RNN网络来拟合其对应的回声信号. 样本数据为一串随机的由0,1组成的数字,将其当成发射出去的一串 ...
- Oracle 的常用概念
SQL优化(数据库的优化) 1. 尽量使用列名(不用*) 2. where解析顺序: 右--> 左 3. 自连接不适合操作大表 4. 尽量使用多表查询不使用子查询语句 5. 尽量不要使用集合运算 ...
- pytest 1.简单介绍一,安装和如何运行
一.pytest是一个接口测试框架,试用版起来比较轻便灵活.首先来介绍他的安装: 直接使用命令 : pip install -U pytest 通过命令 :pytest --version 来查看版 ...
- 2018.11.26 QLU新生赛部分题解
问题 L: 寄蒜几盒? 题目描述 现在有一个圆圈,圆圈上有若干个点,请判断能否在若干个点中选择三个点两两相连组成一个等边三角形? 这若干个点在圆圈上按顺时针顺序分布. 如果可以的话输出"Ye ...
- java和c#中的装箱和拆箱操作
c#装箱和拆箱 装箱:整体上来说,装箱是将值类型转换成引用类型,比如将Vector3转换成Object类型. 具体而言: 1)在托管堆中为值类型分配内存.除了原始的数值以外还应该有指向该数值的引用. ...
- MFC调用halcon生成的cpp内容
打开VS,文件——新建——项目——Visual C++——MFC——MFC应用程序,注意下图,其他默认.窗体1个Button.1个Picture Control [VS配置Halcon] 1.若hal ...
- Luogu P4070 [SDOI2016]生成魔咒
题目链接 \(Click\) \(Here\) 其实是看后缀数组资料看到这个题目的,但是一眼反应显然后缀自动机,每次维护添加节点后的答案贡献即可,唯一不友好的一点是需要平衡树维护,这里因为复杂度不卡而 ...
- python自动化开发-[第三天]-编码,函数,文件操作
今日概要 - 编码详解 - 文件操作 - 初识函数 一.字符编码 1.代码执行过程 代码-->解释器翻译-->机器码-->执行 2.ASCII ASCII:一个Bytes代表一个字符 ...
- 2017-12-15python全栈9期第二天第三节之使用while循环输出0到10
#!/user/bin/python# -*- coding:utf-8 -*-count = 0while count < 10: count += 1 print(count)