ASP.NET MVC模型绑定——绑定部分字段

来源:互联网 发布:matlab 矩阵乘法 编辑:程序博客网 时间:2024/06/03 02:26
using System;using System.Collections.Generic;using System.ComponentModel;using System.ComponentModel.DataAnnotations;using System.Linq;using System.Web;namespace Xautjzd.Models{
    [Bind(Exclude="CollectionStationId, ContactInfo ")]       //排除一部分字段,只绑定模型中的部分字段    public class ServeStation    {        [Key]        [DisplayName("服务站编号")]        public string  ServeStationId { get; set; }        [DisplayName("服务站")]        [Required]        public string  ServeStationName { get; set; }        [DisplayName("集货点编号")]        [Required]        public string CollectionStationId { get; set; }        [DisplayName("站长")]        [Required]        public string  ServeStationManager { get; set; }        [DisplayName("联系方式")]        [Required]        public string  ContactInfo { get; set; }                [DisplayName("乡镇")]        [Required]        public string  Town { get; set; }        [DisplayName("总站名称")]        [Required]        public string  StationName{ get; set; }        [DisplayName("所管辖区业务经理")]        [Required]        public string  RegionBusinessManager { get; set; }        [DisplayName("所管辖区总经理")]        [Required]        public string  StationManger { get; set; }        [DisplayName("备注")]        [Required]        public string  Note { get; set; }    }}

Bind虽可以限制绑定的字段,但是模型验证却无法通过,因为模型验证在Submit后Action执行前完成,所以就会无法通过ModelState.IsValid验证值判断到底验证是否成功。

尽管如此,我们还是可以通过ModelState["字段名称"]语句来判断是否发生了错误,但如此做会让ASP.NET MVC变得很不方便。

于是乎ASP.NET MVC的Controller类提供了TryUpdateModel方法来解决这个问题,eg:

if(!TryUpdateModel(serveStation)){       //验证失败       return View();}db.saveChanges();return View("Index");

注:可用ModelState.addModelError("模型字段名","验证失败的错误信息");来手动添加验证失败时的错误提示信息

原创粉丝点击