ASP.NET MVC3书店--第九节 注册与下订单(第二部分)

 

9.5 为Order类定义验证规则

    现在我们的视图已经编写完成了,与之前在Book(书籍)类中所作的做法相同,我们将为我们的Order(订单)类添加验证规则。鼠标右击Models文件夹,追加一个名为Order的类。除了我们之前在Book类中使用过的验证属性之外,我们还将使用一个正则表达式来验证用户的e-mail地址。Order类的完整代码如代码清单9-3所示。

    代码清单9-3 Order类的完整代码

using System.Collections.Generic; 

using System.ComponentModel;

using System.ComponentModel.DataAnnotations;

using System.Web.Mvc;

namespace MvcBookStore.Models

{

    [Bind(Exclude = "OrderId")]

    public partial class Order

    {

        [ScaffoldColumn(false)]

        public int OrderId { get; set; }

        [ScaffoldColumn(false)]

        public System.DateTime OrderDate { get; set; }

        [ScaffoldColumn(false)]

        public string Username { get; set; }

        [Required(ErrorMessage = "必须填写姓")]

        [DisplayName("姓")]

        [StringLength(160)]

        public string FirstName { get; set; }

        [Required(ErrorMessage = "必须填写名")]

        [DisplayName("名")]

        [StringLength(160)]

        public string LastName { get; set; }

        [Required(ErrorMessage = "必须填写收货地址")]

        [StringLength(70)]

     [DisplayName("收货地址")]

        public string Address { get; set; }

        [Required(ErrorMessage = "必须填写省")]

        [StringLength(40)]

     [DisplayName("省")]

        public string State { get; set; }

        [Required(ErrorMessage = "必须填写城市")]

        [StringLength(40)]

     [DisplayName("城市")]

        public string City { get; set; }

        [Required(ErrorMessage = "必须填写邮政编号")]   

        [DisplayName("邮政编号")]

        [StringLength(10)]

        public string PostalCode { get; set; }

        [Required(ErrorMessage = "必须填写国家")]

        [StringLength(40)]

     [DisplayName("国家")]

        public string Country { get; set; }

        [Required(ErrorMessage = "必须填写电话号码")]

        [StringLength(24)]

     [DisplayName("电话号码")]

        public string Phone { get; set; }

        [Required(ErrorMessage = "必须填写e-mail地址")]

        [DisplayName("e-mail地址")]

        [Regularexpression_r(@"[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]

+\.[A-Za-z]{2,4}",ErrorMessage = "填写的e-mail地址无

效.")]

        [DataType(DataType.EmailAddress)]

        public string Email { get; set; }

        [ScaffoldColumn(false)]

        public decimal Total { get; set; }

        public List<OrderDetail> OrderDetails { get; set; }

    }

}


    当提交表单时如果填写内容有错误的话,将会由于客户端的验证而立即看见错误提示,如图9-8所示。

ASP.NET <wbr>MVC3书店--第九节 <wbr>注册与下订单(第二部分)

 

图9-8 填写内容有错误的话可以立即看见错误提示

    好了,我们已经完成了下订单过程中最困难的部分;我们现在还剩下来一点点工作要做。我们还要追加两个简单视图,我们需要添加一个订单完成通知视图。

9.6 订单完成通知视图

订单完成通知视图非常简单,只是显示一下订单编号。在Complete方法中点击鼠标右键,使用int类性添加一个强类型的视图,如图9-9所示。

ASP.NET <wbr>MVC3书店--第九节 <wbr>注册与下订单(第二部分)

图9-9 添加订单完成通知视图

    修改视图中的代码,先是订单编号,代码如代码清单9-4中所示。

    代码清单9-4 订单完成通知视图中的代码

@model int

@{

    ViewBag.Title = "订单已完成";

}

<h2>订单完成</h2>

<p>感谢您的本次购货! 您的订单号为: @Model</p>

<p>

    @Html.ActionLink("继续购书", "Index",

"首页")

</p>


9.7 修改错误视图 

    空的应用程序模板中在Shared视图文件夹中自带一个错误视图,以供整个网站使用。该错误视图中只包含一个简单错误信息,也不使用公共视图模板,所以需要修改一下。

    因为这是一个公用错误视图,所以内容要尽量简单。我们在其中放入一个错误提示信息与一个返回到之前页面的“后退”链接,以便用户在发现错误后重新返回原视图进行操作。代码如下所示。

@{

    ViewBag.Title = "出错提示";

}

<h2>出错提示</h2>

<p>对不起,操作失败。

    <a href="javascript:history.go(-1)">后退</a>

</p>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值