ASP.net MVC简介及Razor语法

MVC:模型(Model)         视图(View)          控制器(Controller)

项目的创建:新建项目→VisualC#→ Web→ASP.NET Web应用程序,不要勾选 (将Application Insights添加到项目)→确定→Empty (勾选MVC),不要勾选Host in the cloud

控制器的创建:在Controllers点击右键添加控制器,控制器的名字都以Controller结尾

视图的创建:在Views文件夹下和Controllers名字一样的文件夹下添加视图,名字要和Controller里的方法名字一致

模型的创建:就添加一个普通的类

cshtml叫做Razor模板

cshtml模板就是简化HTML的拼接的模板,最终还是生产html给浏览器显示,不能直接访问cshtml文件

 Razor语法:  1. Razor语法:@启动的区域为标准的C#代码,其他部分是普通的html代码

                    2.用法:a)@{string a="abc";}     @a     @{C#代码块}

                              b)@a        直接输出a的值:abc

                               c)@Model.dog.Name

                              d)@if(), @foreach()等C#语句

                                     @{string[] strs={"rupeng","baidu","qq"};}

                                     @foreach(string s in strs)

                                         {

                                           @s

                                          }

@:强制转换成为html

<span>生成的HTML文件里会有<span>标签,<text>在生成的HTML里不存在<text>标签,是直接显示内容

@{bool isok=true;}

<div style='color:@(isok?"red":"green")'></div>      

@{string s1="<a href='www.rupeng.com'>rupeng</a>";}

@s1             默认的@会把字符串的内容进行htmlencode显示

@Html.Raw(s1)     如果不想encode显示就用Html.Raw()    Raw就是原始的意思

注释:@*       *@

href后面的是超链接的地址。
而scr往往是内容的地址

如果cshtml中任何html标签的属性中以"~/"开头,则会自动镜像虚拟路径的处理,当然一般是给<script>的src属性,<link>的href属性,<a>标签的href属性,<img>的src属性用的

html标签的任何属性的值如果是C#的值,那么如果是bool类型的值,那么值是false,则不会渲染这个属性,如果值是true,则会渲染成"属性名=属性名"  主要用于<input>标签还有下拉列表

总结:

1.@就是C#,<aaa></aaa>就是html

2.如果想让被识别成html的当成C#那就用@()

3.如果想让被识别成C#的当成html,用<span>等标签,如果不想生成额外的标签,就用    <text></text>

4.如果不想对内容进行htmlencode显示就用@Html.Raw

5.属性的值如果以"~/"开头就会进行虚拟路径处理

6.属性值如果是bool类型,如果是false就不输出这个属性,如果是true就输出"属性名=属性名"<input type="checkbox"   checked="@b1"/>

@this.GetType().Assembly.Location获得文件的路径

cshtml文件最后会编译成为一个动态的程序集

dynamic是C#中提供的一个语言,就像JavaScript一样的动态语言,到运行的时候再去发现属性的值或者调用方法

vardynamic的区别:var是在编译的时候确定,dynamic是允许的时候动态确定的;var变量不能指向其他类型                                          的,dynamic可以

var只能取值不能赋值,是只读属性

Controller给View传递数据的方式:

1.ViewData:以ViewData["name"]="rupeng",string s=(string)ViewData["name"]这样键值对的方式进行      数据传送

2.ViewBag:ViewBag是dynamic类型的参数,是对ViewData一个动态类型的封装,用起来更方便,和ViewData共      同操作一个数据

3.Model:可以在Controller中通过return View(model)赋值,然后在cshtml中通过Model属性来访问这个对象

ViewDate
ViewBag
用Model传数据的时候有两种方式:1.强类型 需要备注(@model+namespace全名+类名)2.弱类型不需要备注






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值