MVC学习二:基础语法
目录
六:@Response.Write() 和 @Html.Raw()区别
一:重载方法的调用
同一个控制器内的同名方法调用,可以用HttpGet 和HttpPost区分。
[HttpGet]
public void request(int id = )
{
Response.Write("get 请求成功~");
} [HttpPost]
public void request(Models.Classes c = null)
{
Response.Write("post 请求成功~取到值:" + c.CName + " " + c.CImg);
}
二:数据的传递
控制器向视图传递数据的方法:
1.ViewBag 2.ViewData 3.TempData 4.Model
TempData 不允许添加重复的 key
后台的赋值:
//1.ViewBag
ViewBag.bag = "ViewBagbag";
//2.ViewData
ViewData.Add("key", "viewdata");
//3.TempData
if (!TempData.Keys.Contains("temp"))
TempData.Add("temp", "tempdata"); //不能重复 添加 相同的 键
//4.Model
Models.Classes cl = new Models.Classes() { CName = "model name" }; //数据
return View(cl);
前台的取值:
ViewBag : @ViewBag.bag
<br />
ViewData : @ViewData["key"]
<br />
TempData : @TempData["temp"]
<br />
强类型视图: @Model.CName
<br />
这里要说的是,Model 类型的值 其实等效于 ViewData.Model
//4.Model
ViewData.Model = new Models.Classes() { CName = "ViewData.Model" };
//等效于
Models.Classes cl = new Models.Classes() { CName = "model name" }; //数据
return View(cl);
三:生成控件
前台视图 可以 通过 @Html.DropDownList 绑定后台ViewData数据 生成下拉框控件
后台代码:
ViewData.Add("myselect", new List<SelectListItem>() {
new SelectListItem() { Text = "值2", Value = "zhier" },
new SelectListItem() { Text = "值1", Value = "zhiyi" }
});
前台视图:
生成下拉框控件:@Html.DropDownList("myselect", "值一")
网页源码:
<select id="myselect" name="myselect"><option value="">值一</option>
<option value="zhier">值2</option>
<option value="zhiyi">值1</option>
</select>
四:显示加载视图
视图加载可以分为 默认加载与控制器同名的 视图, 也可以显示加载自己指定的 视图。
public ActionResult setData()
{
return View(); //加载默认 ActionResult 方法 同名的 视图 setData.cshtml
//return View("Index"); // 显示加载 Index.cshtml 视图 注意:不要带后缀 .cshtml
}
五:强类型视图
在视图页面 定义 model 强类型 ,这样可以方便 编译器 给出 只能提示 ,仅此而已。
@model _1MVC学习.Models.Classes 强类型视图: @Model.CName
六:@Response.Write() 和 @Html.Raw()区别
前台:
Html.Raw:
@Html.Raw("Html.Raw")
<br />
Response.Write: 这里输出到最上面了
@{
Response.Write("Response.Write输出~");
}
页面源码:
Response.Write输出~ <!DOCTYPE html> <html>
<head>
<meta name="viewport" content="width=device-width" />
<title>setData</title>
</head>
<body>
<div> Html.Raw:
Html.Raw
<br />
Response.Write: 这里输出到最上面了
七:视图中字符串的输入
在视图页面Razor语法 输入 “纯”字符串 方法:
1. <text>标签 2.@:
@{
<text>字符串一</text>
}
<br />
字符串二
<br />
@{
@:字符串三
}
页面源码没有任何标签 包住
字符串一 <br />
字符串二
<br />
字符串三
八:模板页
在添加视图的时候 选择 勾选 使用布局或模板页
使用了模板页的视图:
@{
//标题
ViewBag.Title = "mby";
} <h2>我使用了模板页</h2> @*
这里是注释
@section 可以指定使用哪个“部分” 对应 模板页 的位置 @RenderSection("hhh", required: false)
required 是否为必须填入
除了 @section 的其余部分 全部填充到 模板页的 @RenderBody() 位置 *@ @section hhh{
我只是一个小坑而已啦~~~
}
模板页代码(_Layout.cshtml):
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
<title>@ViewBag.Title</title> </head>
<body>
<h1>模板页</h1>
@RenderBody() @RenderSection("hhh", required: false)
</body>
</html>
说明:此类文章仅供本人学习记录使用。如有2B的错误,欢迎指出。不喜勿喷!
MVC学习二:基础语法的更多相关文章
- JavaScript学习02 基础语法
JavaScript学习02 基础语法 JavaScript中很多基础内容和Java中大体上基本一样,所以不需要再单独重复讲了,包括: 各种算术运算符.比较运算符.逻辑运算符: if else语句.s ...
- less学习:基础语法总结
一. less是什么 Less 是一门 CSS 预处理语言,它扩充了 CSS 语言,增加了诸如变量.混合(mixin).函数等功能,让 CSS 更易维护.方便制作主题.扩充. 注意1):less使用. ...
- JavaScript学习笔记-基础语法、类型、变量
基础语法.类型.变量 非数字值的判断方法:(因为Infinity和NaN他们不等于任何值,包括自身) 1.用x != x ,当x为NaN时才返回true; 2.用isNaN(x) ,当x为NaN或 ...
- Python学习①. 基础语法
Python 简介 Python 是一种解释型,面向对象的语言.特点是语法简单,可跨平台 Python 基础语法 交互式编程 交互式编程不需要创建脚本文件,是通过 Python 解释器的交互模式进来编 ...
- 真香,理解记忆法学习Python基础语法
这篇文章很难写!我最开始学 Python,和大多数人一样,是看的菜鸟教程: 在写完这篇文章的第一遍后,我发现并没有写出新意,很可能读者看到后,会和我当初一样,很快就忘了.我现在已经不是读者而是作者了, ...
- ASP.NET MVC 4.0 学习1-C#基础语法
1,方法多載,相同的方法名稱,不同的參數類型.數量 class Program { static void Main(string[] args) { Program newObject = new ...
- 学习fortran77基础语法
Program ParamaterDefine Implicit None C FORTRAN变量名和关键字不区分大小写.但调用外部函数的话,需要在编译选项里指定 c 大小写等选项 因为链接器是区分大 ...
- python学习之基础语法
一.缩进 学习 Python 与其他语言最大的区别就是,Python 的代码块不使用大括号 {} 来控制类,函数以及其他逻辑判断.python 最具特色的就是用缩进来写模块. 缩进的空白数量是可变的, ...
- Python学习--Python基础语法
第一个Python程序 交互式编程 交互式编程不需要创建脚本文件,是通过 Python 解释器的交互模式进来编写代码. linux上你只需要在命令行中输入 Python 命令即可启动交互式编程,提示窗 ...
随机推荐
- 使用Json Web Token设计Passport系统
>>Token Auth机制 基于Token的身份验证是无状态的,我们不将用户信息存在服务器或Session中. 相比原始的Cookie+Session方式,更适合分布式系统的用户认证,绕 ...
- **crontab的使用方式介绍和no crontab for root 提示的处理
crontab的使用方式介绍 定时任务参数详解如下: crontab -l | crontab -e www.2cto.com #*/30 * * * * ntpdate 1 ...
- 如何设置Vimrc
.title { text-align: center } .todo { font-family: monospace; color: red } .done { color: green } .t ...
- 查看文本[Linux]
查看文本 不分屏查看 cat (默认标准输入到标准输出) -n(行号) 连接...并显示 -E(每行行尾打印$) 翻屏:shift+pageUp/pageDown tac reverse cat 分屏 ...
- UWP学习记录12-应用到应用的通信
UWP学习记录12-应用到应用的通信 1.应用间通信 “共享”合约是用户可以在应用之间快速交换数据的一种方式. 例如,用户可能希望使用社交网络应用与其好友共享网页,或者将链接保存在笔记应用中以供日后参 ...
- C# ORM中Dto Linq Expression 和 数据库Model Linq Expression之间的转换
今天在百度知道中看到一个问题,研究了一会便回答了: http://zhidao.baidu.com/question/920461189016484459.html 如何使dto linq 表达式转换 ...
- Axure RP = Axure Rapid Prototyping
不要一味追求高保真,特别是交互后产生动态数据.并且将动态数据交互传递出去,违背了做原型的初衷了. 自己做着玩追求高保真可以,有成就感. 但作为工作的话,效率优先.能简单直观地展示必要的交互效果即可.
- var a=b=c=1; 和 var a=1, b=2, c=3; 的区别。
function test(){ var a=b=c=1; var a=1, b=2,c=3; } 1中b\c 为全局变量, a为私量 2中a\b\c为私量
- vim 插件之 gist.vim 的安装
用 IntelliJ 的时觉得 create gist 很好用,查了下,发现 vim 下也有这个插件,于是马上配置上. 安装 下载 Gist.vim 解压后进入目录,拷贝文件 cp plugin/gi ...
- VB6+Winsock编写的websocket服务端
早就写好了,看这方面资料比较少,索性贴出来.只是一个DEMO中的,没有做优化,代码比较草.由于没地方上传附件,所以只把一些主要的代码贴出来. 这只是服务端,不过客户端可以反推出来,其实了解了webso ...