一、MVC入门:
1、MVC简介
约定大于配置
2、MVC访问流程
csthml模板(razor模板)就是简化HTML的拼接的模板,最终还是生成html给浏览器显示,不能直接访问cshtml文件。
二、Razor语法:
1、 @启动的区域为标准的C#代码,其他部分是普通的html代码
2、 用法:
a) @{string a="abc";} @a @{代码块} 有标签就是html代码;
总结:@就是C#,<a></a> 就是html ;
如果想让被识别成html的当成C#,那就用@()
如果想让被识别成C#的当成html 就用<span></span> ,如果不想生成额外的标签,就用<text></text>
属性的值如果以“~/”开头会进行虚拟路径处理
属性值如果是bool类型,如果是false 就不输出这个属性,如果是true就输出“属性名=属性名” <input type="checkbox" checked="@b1" >
三、 var 匿名类型
/*
class Myp
{
public int Age { get; set; }
public string Name { get; set; }
}
Myp p = new Myp();
p.Name = "chen";
p.Age = 12;
*/ var p = new { Name = "chen", Age = };
匿名类型的属性是只读的,匿名类型是internal 类型,无法跨程序集
四、Controller 给view传递数据的方式:
1、 ViewData : 键值对从传递数据
public ActionResult Index()
{ ViewData["name"] = "chen"; //键值对传递
ViewData["age"]=;
return View();
}
<body>
<p>
<!--C#方法接收-->
@ViewData["name"] <br />
@ViewData["age"] <br />
</p> </body>
2. ViewBag: ViewBag是dynamic类型的参数,是对ViewData一个动态类型的封装,用起来更方便和ViewData共同操作一个数据。
public ActionResult Index()
{ ViewBag.name = "chen";
ViewBag.age = ; return View();
}
<p>
<!--C#方法接收-->
@ViewBag.name <br />
@ViewBag.age <br />
</p>
3. Model
可以在Controller 中通过 return View(model) 赋值 ,然后在cshtml中通过Model属性来访问这个对象;
强类型视图:如果在cshtml中通过“@model”类型(注意model小写)指定类型,则cshtml中的Model就是指定的强类型,
弱类型视图: 如果没有指定“@model”类型,则cshtml中的Model就是dynamic
数据传递建议用 Model传递,并且建议用强类型