MVC5入门学习第一天
第一步:创建第一个MVC程序
1、初识ViewResult
当从一个动作方法返回一个ViewResult对象时,便是在指示MVC去渲染一个视图。调用不带参数的View方法,便可以创建这个ViewResult对象。这是在告诉MVC,去渲染该动作的默认视图。
public ViewResult RsvpForm() { return View(); }
2、初识ViewBag(视图包)
ViewBag对象是将数据从控制器传递给视图的一种方式,是Controller基类的一个成员,它是一种动态对象,可以给它赋任意属性,使这些属性的值在随后渲染的视图中是可用的。
public ViewResult Index() { int hour = DateTime.Now.Hour; ViewBag.Greeting = hour < 12 ? "Good Morning" : "Good Afternoon"; return View(); }
<div> @ViewBag.Greeting World(from the view) </div>
Web页面从服务器到浏览器的整个呈现过程实际上分为三步:第一步是通过视图引擎对视图文件进行解释,将视图文件当中的代码转换成HTML标记,这一步叫做渲染;第二步是将渲染后的HTML标记传递给客户端浏览器,这一步是页面的传递;第三步是浏览器接收到HTML后对其进行处理并呈现为Web页面,这一步才叫呈现。
3、HTML辅助器方法
@Html.ActionLink("RSVP Now", "RsvpForm")是HTML的辅助器方法,它带有两个参数,第一个是该链接的显示文本,第二个是执行的动作。
@Html.TextBoxFor(x => x.Name, new { @class = "formcontrol" })会生成一个input元素的HTML,将该元素的type类型设置成“text”,id和那么标签属性设置为“Name”。替代lambda表达式的另一种方法是@Html.TextBoxFor("Name")
4、设置启动URL
在项目中点开属性,选中web,特定页,不需要赋值。
第二步:建立数据模型
1、数据验证
通过System.ComponentModel.DataAnnotations;命名空间中注解属性进行定义的,验证运用于域模型,而不是用户界面。这意味这可以在一个地方验证条件,而在运用模型类的任何地方都生效。
public class GuestResponse { [Required(ErrorMessage ="Please enter your name")] public string Name { get; set; } [Required(ErrorMessage = "Please enter your email address")] [RegularExpression(".+\\@.+\\..+",ErrorMessage ="Please enter a valid email address")] public string Email { get; set; } [Required(ErrorMessage = "Please enter your phone number")] public string Phone { get; set; } [Required(ErrorMessage = "Please specify whether you 'll attend")] public bool? WillAttend { get; set; } }
其中public bool? WillAttend { get; set; }代表true或false或null;
可以在控制器类中使用ModelState.IsValid属性来检查是否有验证问题。
public ViewResult RsvpForm(GuestResponse guestResponse) { if (ModelState.IsValid) { return View("Thanks", guestResponse); } else { return View(); } }
在提示验证有错误的情况下在视图中通过 @Html.ValidationSummary()辅助器方法给用户以提醒
第三步:建立强类型视图
1、强类型视图意在渲染一个特定的域类型,而且如果指定了想使用的类型,MVC将能够创建便于使用这个类型的方法。
@model PartyInvites.Models.GuestResponse
@{
Layout = null;
}
2、模型绑定。return View("Thanks", guestResponse);第一个参数是一个模型类型,这个View方法告诉MVC查找一个“Thanks”的视图,并对该视图传递GuestResponse对象,在视图中通过’@Model.属性名‘即可获得
最后:通过工具中nuget控制台命令“Install-Package bootstrap -Version 3.0.0”加载bootstrap前端库。命令可在https://www.nuget.org/packages/bootstrap/3.0.0获得。