HTML5技术

[.NET] 一步步打造一个简单的 MVC 电商网站 - BooksStore(三) - 反骨仔(二五仔)(3)

字号+ 作者:H5之家 来源:H5之家 2017-04-02 11:00 我要评论( )

@model Wen.BooksStore.Domain.Entities.Contact div @using (Html.BeginForm()){ div @Html.ValidationSummary()/divdiv姓名: @Html.TextBoxFor(x = x.Name)/divdiv地址: @Html.TextBoxFor(x = x.Address)/divdi

@model Wen.BooksStore.Domain.Entities.Contact <div> @using (Html.BeginForm()) { <div >@Html.ValidationSummary()</div> <div>姓名: @Html.TextBoxFor(x => x.Name)</div> <div>地址: @Html.TextBoxFor(x => x.Address)</div> <div>邮箱: @Html.TextBoxFor(x => x.Email)</div> <div><input type=value=/></div> } </div>

 

  这里使用的是模型校验,_Layout.cshtml 布局页需要引入 js:

<script src="~/Scripts/jquery-1.10.2.js"></script> <script src="~/Scripts/jquery.validate.js"></script> <script src="~/Scripts/jquery.validate.unobtrusive.js"></script>

<!DOCTYPE html> <html> <head> <meta name=content=/> <title>@ViewBag.Title</title> <link href=rel=/> <script src=></script> <script src=></script> <script src=></script> </head> <body> <div id=> @{ Html.RenderAction(, );} <div >图书商城</div> </div> <div id=> @{ Html.RenderAction(, ); } </div> <div id=> @RenderBody() </div> </body> </html>

_Layout.cshtml

 

  尝试运行,会出现以下页面,如果信息不填的话会出现相关的错误提示:

 

  2.接下来,要进入“提交”后的流程了。

  现在还需要一个组件用于处理订单,创建一个用于订单处理的接口,和一个该接口的实现,再通过 Ninject 进行两者的绑定:

订单处理 IOrderProcessor { 处理订单 ProcessOrder(Cart cart, Contact contact); }

 

  建立一个实现该接口用于处理订单的实体类,这里并不是调用支付接口,而是简单通过 BCL 中的进行邮件的发送。

   

  EmailOrderProcessor.cs:

邮件订单处理器 EmailOrderProcessor : IOrderProcessor { 发送人 Sender { 账号 Account = ; 密码 Password = "xxx"; } 处理订单 ProcessOrder(Cart cart, Contact contact) { if (string.IsNullOrEmpty(contact.Email)) { ); } var sb = new StringBuilder(); foreach (var item in cart.GetCartItems) { sb.AppendLine($); } sb.AppendLine($); sb.AppendLine(); sb.AppendLine($); fromAddr = new MailAddress(Sender.Account); var message = new MailMessage { From = fromAddr }; //设置收件人,可添加多个,添加方法与下面的一样 message.To.Add(contact.Email); //设置抄送人 message.CC.Add(Sender.Account); //设置邮件标题 message.Subject = ; //设置邮件内容 message.Body = sb.ToString(); client = , 25) { Credentials = new NetworkCredential(Sender.Account, Sender.Password), EnableSsl = true }; //设置发送人的邮箱账号和密码 //启用ssl,也就是安全发送 //发送邮件 client.Send(message); }

 

  CartController 也需要稍作调整:

 

  还要在 CartController 中额外添加一个带 [HttPost] 特性的名为 Checkout 方法:

 

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • ASP.NET Core MVC 源码学习:详解 Action 的匹配 - Savorboard

    ASP.NET Core MVC 源码学习:详解 Action 的匹配 - Savorboard

    2017-03-30 18:02

  • 2年前端学习历程,与找不到工作的悲愤与吐槽!(100%真实经历,看博主怎么一步步走向失业) - 蒋启钲

    2年前端学习历程,与找不到工作的悲愤与吐槽!(100%真实经历,看博

    2017-03-29 11:00

  • 任务调度之持久化(基于Quartz.net) - 蓝建荣

    任务调度之持久化(基于Quartz.net) - 蓝建荣

    2017-03-28 12:03

  • ASP.NET Core MVC 源码学习:MVC 启动流程详解 - Savorboard

    ASP.NET Core MVC 源码学习:MVC 启动流程详解 - Savorboard

    2017-03-27 18:01

网友点评