本章主要让读者对mvc有个认识,以便吸引读者能够感受到mvc架构的好处。主要的知识点:M/V/C各个部分的都有,但是都是粗略的提到,同时最后还介绍了mvc中的一个发邮件静态类WebMail。
1、关于View的返回值:我们可以返回字符串和ViewResult对象以外的其他操作方法的结果。例如,如果我们返回RedirectResult,我们会导致浏览器重定向到另一个URL。如果我们 返回HttpUnauthorizedResult,我们强制用户登录。这些对象统称为action的结果,他们都来自ActionResult类。(C层)
2、ViewBag是一个动态对象,您可以指定任意属性,随后将使这些值可在任何视图中呈现。(使用方法是:ViewBag.Geeting=="")。(C层和V层)
3、关于HttpGet和HttpPost,一般当用户第一次请求一个控制器中的方法(Home/RsvpForm),也就是要从(Home/Index)页面转到RsvpForm页面时,使用的标签是HttpGet。当自身提交model时,通常是验证model是否符合要求,如果符合要求转到另外一个页面,如果不符合,通过自身的model保持原有的数据,此时用HttpPost。(C层、V层、M层)
4、view保持数据的原理是使用model 的数据绑定。在添加View层,使用的是model的强类型,model中的各个字段去对应View的表单,这样也使提交数据时,表单的数据和model相匹配。(C层、M层)
5、邮件发送。
直接上码了:
View Code
@{ try { WebMail.SmtpServer = "smtp.qq.com"; WebMail.SmtpPort = 25; WebMail.EnableSsl = false; //下面的用户名和密码与from是一致的,通常是网站的邮箱 WebMail.UserName = "92437410"; WebMail.Password = "*******"; WebMail.From = "92437410@QQ.com"; //发送到490204371这个邮箱,这个应该是主办人的邮箱 WebMail.Send("49020431@qq.com", "RSVP Notification", Model.Name + " is " + ((Model.WillAttend ?? false) ? "" : "not") + "attending"); } catch (Exception ex) { @:<b>Sorry - we couldn't send the email to confirm your RSVP.</b> } }
本章源码:
同时学到了他们写书的一个方式:那就是先给把给你体验一把,让你感觉很爽,然后再逐渐的切入整题,这样你很容易的去接受一个新事物。