zoukankan      html  css  js  c++  java
  • 对于个人(注册表)与团队(团队表)(两张表没有关联)的展示与可空判断

    1,在Model中只有GroupId没有名称(GroupName),所以自己定义一个:

      /// <summary>
        /// RegistratorMessage 界面模型类
        /// </summary>
        [Validator(typeof(RegistratorMessageValidator))]
        public partial class RegistratorMessageModel : BaseNopEntityModel
        {
            /// <summary>
            /// RegistratorMessage构造
            /// </summary>
            public RegistratorMessageModel()
            {
    
            }
              
            /// <summary>
            /// 获取或设置 团队标识
            /// </summary>
            [NopResourceDisplayName("Admin.RegistratorMessage.GroupId")]
            [UIHint("Int32Nullable")]
            public Nullable<int> GroupId { get; set; }
    
            /// <summary>
            /// 团队标识名称
            /// </summary>
            public string GroupName { get; set; }
    
           }

    2.在界面(view)列表展示中

     columns: [{
      field: "GroupName",//团队标识名称
      title:    "@T("Admin.RegistratorMessage.GroupId")",
                     100,
                      }]

    2.1在添加界面呈现方式

     <div class="form-group">
       <div class="col-md-3">
       @Html.NopLabelFor(model => model.GroupId)
       </div>
        <div class="col-md-6">
       @Html.NopEditorFor(model => model.GroupName)//输入框中的值
        @Html.ValidationMessageFor(model => model.GroupId)
         </div>
      </div>

    3.在服务端(控制器中)

    为了能呈现界面的GroupName ,故需要在控制器中(ListInfo方法,Create方法,Edit方法)调用公共方法:

      public string GroupNameIcon(RegistratorMessageModel model)
            {
                if (model.GroupId.HasValue)//用0标识不是团队   判断是否可空
                {
                    if (model.GroupId.Value != 0)//判断是否为0(即个人)
                    {
                        model.GroupName = _groupRegistratorMessageService.GetGroupRegistratorMessageById(model.GroupId.Value).GroupName;
                    }
                    else
                    {
                        model.GroupName = "0";
                    }
                }
                else
                {
                    model.GroupName = "0";
                }
    
                return model.GroupName;
            }

    调用方式为:GroupNameIcon(model)

    例如:添加方法中

    public ActionResult Create()
            {
                var model = new RegistratorMessageModel();
              
                GroupNameIcon(model);//团队标识名称
                return View(model);
            }

    其余方法与添加方法的使用相同。

    4,将界面传回来的GroupName通过查询获得GroupId(因为数据库存储的是GroupId,GroupName只是自己定义的为了临时展示用的)

    使用方式的方式调用:

    方法为:

    private void GroupIdIcon(RegistratorMessageModel model, RegistratorMessage eventInfo)
            {
                eventInfo.GroupId = _groupRegistratorMessageService.GetAllGroupRegistratorMessages().FirstOrDefault(x => x.GroupName == model.GroupName) != null ? (_groupRegistratorMessageService.GetAllGroupRegistratorMessages().FirstOrDefault(x => x.GroupName == model.GroupName).Id) : 0;
            }

    4.1方法的调用为:

    例子:添加界面(将输入的GroupName转为数据库可以存放的GroupId)

     [HttpPost, ParameterBasedOnFormName("save-continue", "continueEditing")]
            public ActionResult Create(RegistratorMessageModel model, bool continueEditing)
            {
                if (ModelState.IsValid)
                {
                    var Info = model.ToEntity();
    
                 
    
                    GroupIdIcon(model, Info);//获得团队id 
                  
                    _registratorMessageService.InsertRegistratorMessage(Info);//插入到数据库
    
                    SuccessNotification(_localizationService.GetResource("添加成功"));
    
                    if (continueEditing)
                    {
                        return RedirectToAction("Edit", new { id = Info.Id });
                    }
                    return RedirectToAction("List");
                }
              
                GroupNameIcon(model);//团队标识名称
                return View(model);
            }

     上面这种做法有一个问题就是:如何在添加或者编辑的时候出现了还没有存在数据库团队名称,则列表展示中将不会出现数据。所以不建议才有公共里面的方法

    使用这种判断方式:先判断在团队存在的是否存在的前提下,再在去查询匹配数据库,进而判断是否赋值

       if (entity.GroupId != null)
                {
                    var team = _groupRegistratorMessageService.GetAllGroupRegistratorMessages().FirstOrDefault(g => g.Id == entity.GroupId);
                    if (team != null)
                    {
                        model.TeamName = team.GroupName;
                    }
                }
  • 相关阅读:
    机器学习公开课笔记第八周之推荐系统
    使用RT3070使开发板上网
    Linux及FL2440使用过程遇到的各种问题和小技巧
    学习 Git的使用过程
    Linux下Bash shell学习笔记
    MarkDown学习笔记
    STM32F407+STemwin学习笔记之STemwin移植补充Touch
    STM32F407+STemwin学习笔记之STemwin移植
    DXP常用的设置及快捷键
    第九届蓝桥杯-嵌入式比赛体会与备赛经验
  • 原文地址:https://www.cnblogs.com/wfaceboss/p/6289321.html
Copyright © 2011-2022 走看看