中文字幕人妻中文_99精品欧美一区二区三区综合在线_精品久久久久一区二区_色月丁香_免费福利在线视频_欧美大片免费观看网址_国产伦精品一区二区三区在线播放_污污污污污污www网站免费_久久月本道色综合久久_色69激情爱久久_尹人香蕉久久99天天拍_国产美女www_亚洲国产精品无码7777一线_五月婷婷六月激情_看免费一级片_精品久久久久久成人av_在线色亚洲_女人另类性混交zo_国产精品青青在线观看爽香蕉_人人澡人人添人人爽一区二区

主頁 > 知識(shí)庫 > ASP.NET MVC5網(wǎng)站開發(fā)之用戶添加和瀏覽2(七)

ASP.NET MVC5網(wǎng)站開發(fā)之用戶添加和瀏覽2(七)

熱門標(biāo)簽:電銷專用外呼線路 地圖標(biāo)注位置怎么弄圖 400電話唐山辦理 漯河外呼調(diào)研線路 電話機(jī)器人鑰匙扣 廣西房產(chǎn)智能外呼系統(tǒng)推薦 旅游地圖標(biāo)注線路 電銷外呼系統(tǒng)是違法的嗎 威力最大的電銷機(jī)器人

一、數(shù)據(jù)存儲(chǔ)層

1、查找分頁列表

在寫用戶列表時(shí)遇到了問題,考慮到用戶可能會(huì)較多的情況需要分頁,在數(shù)據(jù)存儲(chǔ)層寫的方法是public IQueryableT> FindPageListTKey>(int pageSize, int pageIndex, out int totalNumber, ExpressionFuncT, bool>> where, ExpressionFuncT, TKey>> order, bool asc)。

主要問題就在紅色的order這兒,這個(gè)參數(shù)不好傳遞,比如:如果是已ID來排序哪TKey類型是int,如果以注冊(cè)時(shí)間來排序哪TKey類型就是datetime。如果我在業(yè)務(wù)邏輯層寫一個(gè)函數(shù)可以支持選擇排序類型,那么我沒有辦法聲明一個(gè)變量既可以存儲(chǔ)TKey為int的值,又可以存儲(chǔ)datetime的值,那么排序就要寫成下面這個(gè)樣子,感覺不舒服。

//排序
      switch(order)
      {
        case 0://ID升序
          _users.Items = Repository.FindPageList((int)pageSize, (int)pageIndex, out _users.TotalNumber, _where, u => u.UserID, true).ToList();
          break;
        case 1://ID降序
          _users.Items = Repository.FindPageList((int)pageSize, (int)pageIndex, out _users.TotalNumber, _where, u => u.UserID, false).ToList();
          break;
        case 2://注冊(cè)時(shí)間降序
          _users.Items = Repository.FindPageList((int)pageSize, (int)pageIndex, out _users.TotalNumber, _where, u => u.RegTime, true).ToList();
          break;
        case 3://注冊(cè)時(shí)間升序
          _users.Items = Repository.FindPageList((int)pageSize, (int)pageIndex, out _users.TotalNumber, _where, u => u.RegTime, false).ToList();
          break;
        case 4://最后登錄時(shí)間升序
          _users.Items = Repository.FindPageList((int)pageSize, (int)pageIndex, out _users.TotalNumber, _where, u => u.LastLoginTime, true).ToList();
          break;
        case 5://最后登錄時(shí)間降序
          _users.Items = Repository.FindPageList((int)pageSize, (int)pageIndex, out _users.TotalNumber, _where, u => u.LastLoginTime, false).ToList();
          break;
        default://ID降序
          _users.Items = Repository.FindPageList((int)pageSize, (int)pageIndex, out _users.TotalNumber, _where, u => u.UserID, false).ToList();
          break;
      }

后來將TKey設(shè)為dynamic類型,不論ExpressionFuncT, dynamic>> order = u => u.UserID  或者u => u.RegTime都可以編譯通過,但是一運(yùn)行就會(huì)出錯(cuò)。

前幾天沒寫博客一直在考慮這個(gè)問題,后來還是換成用字符串的方式來動(dòng)態(tài)排序。 步驟如下:

Ninesky.DataLibrary[右鍵]->添加->類,輸入類名OrderParam

namespace Ninesky.DataLibrary
{
  /// summary>
  /// 排序參數(shù)
  /// /summary>
  public class OrderParam
  {
    /// summary>
    /// 屬性名
    /// /summary>
    public string PropertyName { get; set; }

    /// summary>
    /// 排序方式
    /// /summary>
    public OrderMethod Method { get; set; }
  }

  /// summary>
  /// 排序方式
  /// /summary>
  public enum OrderMethod
  {
    /// summary>
    /// 正序
    /// /summary>
    ASC,
    /// summary>
    /// 倒序
    /// /summary>
    DESC
  }
}

打開Ninesky.DataLibrary/Repository.cs,將方法public IQueryableT> FindPageListTKey>(int pageSize, int pageIndex, out int totalNumber, ExpressionFuncT, bool>> where, ExpressionFuncT, TKey>> order, bool asc)的代碼修改為

/// summary>
    /// 查找分頁列表
    /// /summary>
    /// param name="pageSize">每頁記錄數(shù)。必須大于1/param>
    /// param name="pageIndex">頁碼。首頁從1開始,頁碼必須大于1/param>
    /// param name="totalNumber">總記錄數(shù)/param>
    /// param name="where">查詢表達(dá)式/param>
    /// param name="orderParams">排序【null-不設(shè)置】/param>
    public IQueryableT> FindPageList(int pageSize, int pageIndex, out int totalNumber, ExpressionFuncT, bool>> where, OrderParam[] orderParams)
    {
      if (pageIndex  1) pageIndex = 1;
      if (pageSize  1) pageSize = 10;
      IQueryableT> _list = DbContext.SetT>().Where(where);
      var _orderParames = Expression.Parameter(typeof(T), "o");
      if (orderParams != null  orderParams.Length > 0)
      {
        for (int i = 0; i  orderParams.Length; i++)
        {
          //根據(jù)屬性名獲取屬性
          var _property = typeof(T).GetProperty(orderParams[i].PropertyName);
          //創(chuàng)建一個(gè)訪問屬性的表達(dá)式
          var _propertyAccess = Expression.MakeMemberAccess(_orderParames, _property);
          var _orderByExp = Expression.Lambda(_propertyAccess, _orderParames);
          string _orderName = orderParams[i].Method == OrderMethod.ASC ? "OrderBy" : "OrderByDescending";
          MethodCallExpression resultExp = Expression.Call(typeof(Queryable), _orderName, new Type[] { typeof(T), _property.PropertyType }, _list.Expression, Expression.Quote(_orderByExp));
          _list = _list.Provider.CreateQueryT>(resultExp);
        }
      }
      totalNumber = _list.Count();
      return _list.Skip((pageIndex - 1) * pageIndex).Take(pageSize);
    }

方法中排序參數(shù)(OrderParam[]) 使用數(shù)組,是考慮到多級(jí)排序的情況。對(duì)FindPageList重載代碼進(jìn)行修改,修改完的代碼如下:

//查找實(shí)體分頁列表
    #region FindPageList

    /// summary>
    /// 查找分頁列表
    /// /summary>
    /// param name="pageSize">每頁記錄數(shù)。必須大于1/param>
    /// param name="pageIndex">頁碼。首頁從1開始,頁碼必須大于1/param>
    /// param name="totalNumber">總記錄數(shù)/param>
    /// returns>/returns>
    public IQueryableT> FindPageList(int pageSize, int pageIndex, out int totalNumber)
    {
      OrderParam _orderParam = null;
      return FindPageList(pageSize, pageIndex, out totalNumber, _orderParam);
    }

    /// summary>
    /// 查找分頁列表
    /// /summary>
    /// param name="pageSize">每頁記錄數(shù)。必須大于1/param>
    /// param name="pageIndex">頁碼。首頁從1開始,頁碼必須大于1/param>
    /// param name="totalNumber">總記錄數(shù)/param>
    /// param name="order">排序鍵/param>
    /// param name="asc">是否正序/param>
    /// returns>/returns>
    public IQueryableT> FindPageList(int pageSize, int pageIndex, out int totalNumber, OrderParam orderParam)
    {
      return FindPageList(pageSize, pageIndex, out totalNumber, (T)=> true, orderParam);
    }

    /// summary>
    /// 查找分頁列表
    /// /summary>
    /// param name="pageSize">每頁記錄數(shù)。必須大于1/param>
    /// param name="pageIndex">頁碼。首頁從1開始,頁碼必須大于1/param>
    /// param name="totalNumber">總記錄數(shù)/param>
    /// param name="where">查詢表達(dá)式/param>
    public IQueryableT> FindPageList(int pageSize, int pageIndex, out int totalNumber, ExpressionFuncT, bool>> where)
    {
      OrderParam _param = null;
      return FindPageList(pageSize, pageIndex, out totalNumber, where, _param);
    }

    /// summary>
    /// 查找分頁列表
    /// /summary>
    /// param name="pageSize">每頁記錄數(shù)。/param>
    /// param name="pageIndex">頁碼。首頁從1開始/param>
    /// param name="totalNumber">總記錄數(shù)/param>
    /// param name="where">查詢表達(dá)式/param>
    /// param name="orderParam">排序【null-不設(shè)置】/param>
    /// returns>/returns>
    public IQueryableT> FindPageList(int pageSize, int pageIndex, out int totalNumber, ExpressionFuncT, bool>> where, OrderParam orderParam)
    {
      OrderParam[] _orderParams = null;
      if (orderParam != null) _orderParams = new OrderParam[] { orderParam };
      return FindPageList(pageSize, pageIndex, out totalNumber, where, _orderParams);
    }

    /// summary>
    /// 查找分頁列表
    /// /summary>
    /// param name="pageSize">每頁記錄數(shù)。/param>
    /// param name="pageIndex">頁碼。首頁從1開始/param>
    /// param name="totalNumber">總記錄數(shù)/param>
    /// param name="where">查詢表達(dá)式/param>
    /// param name="orderParams">排序【null-不設(shè)置】/param>
    public IQueryableT> FindPageList(int pageSize, int pageIndex, out int totalNumber, ExpressionFuncT, bool>> where, OrderParam[] orderParams)
    {
      if (pageIndex  1) pageIndex = 1;
      if (pageSize  1) pageSize = 10;
      IQueryableT> _list = DbContext.SetT>().Where(where);
      var _orderParames = Expression.Parameter(typeof(T), "o");
      if (orderParams != null  orderParams.Length > 0)
      {
        for (int i = 0; i  orderParams.Length; i++)
        {
          //根據(jù)屬性名獲取屬性
          var _property = typeof(T).GetProperty(orderParams[i].PropertyName);
          //創(chuàng)建一個(gè)訪問屬性的表達(dá)式
          var _propertyAccess = Expression.MakeMemberAccess(_orderParames, _property);
          var _orderByExp = Expression.Lambda(_propertyAccess, _orderParames);
          string _orderName = orderParams[i].Method == OrderMethod.ASC ? "OrderBy" : "OrderByDescending";
          MethodCallExpression resultExp = Expression.Call(typeof(Queryable), _orderName, new Type[] { typeof(T), _property.PropertyType }, _list.Expression, Expression.Quote(_orderByExp));
          _list = _list.Provider.CreateQueryT>(resultExp);
        }
      }
      totalNumber = _list.Count();
      return _list.Skip((pageIndex - 1) * pageIndex).Take(pageSize);
    }

    #endregion

2、查找列表

基于分頁列表同樣的原因,對(duì)FindList方法也進(jìn)行修改。

//查找實(shí)體列表
    #region FindList
    /// summary>
    /// 查找實(shí)體列表
    /// /summary>
    /// returns>/returns>
    public IQueryableT> FindList()
    {
      return DbContext.SetT>();
    }

    /// summary>
    /// 查找實(shí)體列表
    /// /summary>
    /// param name="where">查詢Lambda表達(dá)式/param>
    /// returns>/returns>
    public IQueryableT> FindList(ExpressionFuncT, bool>> where)
    {
      return DbContext.SetT>().Where(where);
    }

    /// summary>
    /// 查找實(shí)體列表
    /// /summary>
    /// param name="where">查詢Lambda表達(dá)式/param>
    /// param name="number">獲取的記錄數(shù)量/param>
    /// returns>/returns>
    public IQueryableT> FindList(ExpressionFuncT, bool>> where, int number)
    {
      return DbContext.SetT>().Where(where).Take(number);
    }

    /// summary>
    /// 查找實(shí)體列表
    /// /summary>
    /// param name="where">查詢Lambda表達(dá)式/param>
    /// param name="orderParam">排序參數(shù)/param>
    /// returns>/returns>
    public IQueryableT> FindList(ExpressionFuncT, bool>> where, OrderParam orderParam)
    {
      return FindList(where, orderParam, 0);
    }

    /// summary>
    /// 查找實(shí)體列表
    /// /summary>
    /// param name="where">查詢Lambda表達(dá)式/param>
    /// param name="orderParam">排序參數(shù)/param>
    /// param name="number">獲取的記錄數(shù)量【0-不啟用】/param>
    public IQueryableT> FindList(ExpressionFuncT, bool>> where, OrderParam orderParam, int number)
    {
      OrderParam[] _orderParams = null;
      if (orderParam != null) _orderParams = new OrderParam[] { orderParam };
      return FindList(where, _orderParams, number);
    }

    /// summary>
    /// 查找實(shí)體列表
    /// /summary>
    /// param name="where">查詢Lambda表達(dá)式/param>
    /// param name="orderParams">排序參數(shù)/param>
    /// param name="number">獲取的記錄數(shù)量【0-不啟用】/param>
    /// returns>/returns>
    public IQueryableT> FindList(ExpressionFuncT, bool>> where, OrderParam[] orderParams, int number)
    {
      var _list = DbContext.SetT>().Where(where);
      var _orderParames = Expression.Parameter(typeof(T), "o");
      if (orderParams != null  orderParams.Length > 0)
      {
        for (int i = 0; i  orderParams.Length; i++)
        {
          //根據(jù)屬性名獲取屬性
          var _property = typeof(T).GetProperty(orderParams[i].PropertyName);
          //創(chuàng)建一個(gè)訪問屬性的表達(dá)式
          var _propertyAccess = Expression.MakeMemberAccess(_orderParames, _property);
          var _orderByExp = Expression.Lambda(_propertyAccess, _orderParames);
          string _orderName = orderParams[i].Method == OrderMethod.ASC ? "OrderBy" : "OrderByDescending";
          MethodCallExpression resultExp = Expression.Call(typeof(Queryable), _orderName, new Type[] { typeof(T), _property.PropertyType }, _list.Expression, Expression.Quote(_orderByExp));
          _list = _list.Provider.CreateQueryT>(resultExp);
        }
      }
      if (number > 0) _list = _list.Take(number);
      return _list;
    }
    #endregion

二、業(yè)務(wù)邏輯層

1、用戶模型

Ninesky.Core【右鍵】->添加->類,輸入類名User。

引用System.ComponentModel.DataAnnotations命名空間

using System;
using System.ComponentModel.DataAnnotations;

namespace Ninesky.Core
{
  /// summary>
  /// 用戶模型
  /// /summary>
  public class User
  {
    [Key]
    public int UserID { get; set; }

    /// summary>
    /// 角色I(xiàn)D
    /// /summary>
    [Required(ErrorMessage = "必須輸入{0}")]
    [Display(Name = "角色I(xiàn)D")]
    public int RoleID { get; set; }

    /// summary>
    /// 用戶名
    /// /summary>
    [StringLength(50, MinimumLength = 4, ErrorMessage = "{0}長(zhǎng)度為{2}-{1}個(gè)字符")]
    [Display(Name = "用戶名")]
    public string Username { get; set; }

    /// summary>
    /// 名稱【可做昵稱、真實(shí)姓名等】
    /// /summary>
    [StringLength(20, ErrorMessage = "{0}必須少于{1}個(gè)字符")]
    [Display(Name = "名稱")]
    public string Name { get; set; }

    /// summary>
    /// 性別【0-女,1-男,2-保密】
    /// /summary>
    [Required(ErrorMessage = "必須輸入{0}")]
    [Range(0,2,ErrorMessage ="{0}范圍{1}-{2}")]
    [Display(Name = "性別")]
    public int Sex { get; set; }

    /// summary>
    /// 密碼
    /// /summary>
    [DataType(DataType.Password)]
    [StringLength(256, ErrorMessage = "{0}長(zhǎng)度少于{1}個(gè)字符")]
    [Display(Name = "密碼")]
    public string Password { get; set; }

    /// summary>
    /// Email
    /// /summary>
    [DataType(DataType.EmailAddress)]
    [StringLength(50, MinimumLength = 4, ErrorMessage = "{0}長(zhǎng)度為{2}-{1}個(gè)字符")]
    [Display(Name = "Email")]
    public string Email { get; set; }

    /// summary>
    /// 最后登錄時(shí)間
    /// /summary>
    [DataType(DataType.DateTime)]
    [Display(Name = "最后登錄時(shí)間")]
    public NullableDateTime> LastLoginTime { get; set; }


    /// summary>
    /// 最后登錄IP
    /// /summary>
    [Display(Name = "最后登錄IP")]
    public string LastLoginIP { get; set; }

    /// summary>
    /// 注冊(cè)時(shí)間
    /// /summary>
    [Required(ErrorMessage = "必須輸入{0}")]
    [Display(Name = "注冊(cè)時(shí)間")]
    public DateTime RegTime { get; set; }

    /// summary>
    /// 角色
    /// /summary>
    public virtual Role Role { get; set; }

  }
}

用戶名、密碼和Email未設(shè)置成必填是考慮到,以后可以擴(kuò)展QQ賬號(hào)、微博賬號(hào)等Owin方式登錄等功能,用Owin登錄的賬號(hào)不會(huì)有這幾個(gè)參數(shù)。對(duì)于用戶添加和注冊(cè),可以寫一個(gè)視圖模型進(jìn)行驗(yàn)證。

2、添加表映射

打開Ninesky.Core/NineskyContext.cs,添加Users表映射(紅框部分)

3、更新數(shù)據(jù)表

在【工具欄】->【工具】->NuGet包管理器->程序包管理器控制臺(tái),運(yùn)行命令Update-Database。

4、用戶管理類

Ninesky.Core【右鍵】->添加->類,輸入類名UserManager,類繼承自BaseManagerUser>

引用命名空間:using Ninesky.Core.Types; using Ninesky.DataLibrary;

因一般網(wǎng)站用戶的數(shù)量肯能要較多,在顯示用戶列表的時(shí)候要分頁顯示,在數(shù)據(jù)存儲(chǔ)層(Ninesky.DataLibrary)的Repository類中 public IQueryableT> FindPageListTKey>(int pageSize, int pageIndex, out int totalNumber, ExpressionFuncT, bool>> where, ExpressionFuncT, TKey>> order, bool asc)等分頁方法,方法參數(shù)where為L(zhǎng)ambda表達(dá)式樹,在UserManager類的方法中我希望動(dòng)態(tài)構(gòu)造表達(dá)式樹,這里需要借助一個(gè)小工具LINQKit。

Ninesky.Core->引用【右鍵】->管理NuGet程序包。

在NuGet包管理器中搜索linqkit,安裝LinqKit最新版本。

在UserController中引用命名空間using LinqKit;

4.1 分頁列表

添加FindPageList方法,代碼如下:

/// summary>
    /// 分頁列表
    /// /summary>
    /// param name="pagingUser">分頁數(shù)據(jù)/param>
    /// param name="roleID">角色I(xiàn)D/param>
    /// param name="username">用戶名/param>
    /// param name="name">名稱/param>
    /// param name="sex">性別/param>
    /// param name="email">Email/param>
    /// param name="order">排序【null(默認(rèn))-ID降序,0-ID升序,1-ID降序,2-注冊(cè)時(shí)間降序,3-注冊(cè)時(shí)間升序,4-最后登錄時(shí)間升序,5-最后登錄時(shí)間降序】/param>
    /// returns>/returns>
    public PagingUser> FindPageList(PagingUser> pagingUser, int? roleID, string username, string name, int? sex, string email, int? order)
    {
      //查詢表達(dá)式
      var _where = PredicateBuilder.TrueUser>();
      if (roleID != null  roleID > 0) _where = _where.And(u => u.RoleID == roleID);
      if (!string.IsNullOrEmpty(username)) _where = _where.And(u => u.Username.Contains(username));
      if (!string.IsNullOrEmpty(name)) _where = _where.And(u => u.Name.Contains(name));
      if (sex != null  sex >= 0  sex = 2) _where = _where.And(u => u.Sex == sex);
      if (!string.IsNullOrEmpty(email)) _where = _where.And(u => u.Email.Contains(email));
      //排序
      OrderParam _orderParam;
      switch(order)
      {
        case 0://ID升序
          _orderParam = new OrderParam() { PropertyName = "UserID", Method = OrderMethod.ASC };
          break;
        case 1://ID降序
          _orderParam = new OrderParam() { PropertyName = "UserID", Method = OrderMethod.DESC };
          break;
        case 2://注冊(cè)時(shí)間降序
          _orderParam = new OrderParam() { PropertyName = "RegTime", Method = OrderMethod.ASC };
          break;
        case 3://注冊(cè)時(shí)間升序
          _orderParam = new OrderParam() { PropertyName = "RegTime", Method = OrderMethod.DESC };
          break;
        case 4://最后登錄時(shí)間升序
          _orderParam = new OrderParam() { PropertyName = "LastLoginTime", Method = OrderMethod.ASC };
          break;
        case 5://最后登錄時(shí)間降序
          _orderParam = new OrderParam() { PropertyName = "LastLoginTime", Method = OrderMethod.DESC };
          break;
        default://ID降序
          _orderParam = new OrderParam() { PropertyName = "UserID", Method = OrderMethod.DESC };
          break;
      }
      pagingUser.Items = Repository.FindPageList(pagingUser.PageSize,pagingUser.PageIndex, out pagingUser.TotalNumber, _where.Expand(),_orderParam).ToList();
      return pagingUser;
    }

4.2 判斷用戶名是否存在

添加HasUsername方法,代碼如下

/// summary>
    /// 用戶名是否存在
    /// /summary>
    /// param name="accounts">用戶名[不區(qū)分大小寫]/param>
    /// returns>/returns>
    public bool HasUsername(string username)
    {
      return base.Repository.IsContains(u => u.Username.ToUpper() == username.ToUpper());
    }

4.3判斷Email是否存在

添加HasEmail方法,代碼如下

/// summary>
    /// Email是否存在
    /// /summary>
    /// param name="email">Email[不區(qū)分大小寫]/param>
    /// returns>/returns>
    public bool HasEmail(string email)
    {
      return base.Repository.IsContains(u => u.Email.ToUpper() == email.ToUpper());
    }

4.4 添加用戶

因添加用戶時(shí),賬號(hào)和Email不能重復(fù)所以添加前先判斷一下用戶名和密碼是否存在。這里用戶名為空時(shí)不進(jìn)行判斷是因?yàn)榭紤]有可能以后使用可能用QQ等其他方式登錄。

/// summary>
    /// 添加【返回值Response.Code:0-失敗,1-成功,2-賬號(hào)已存在,3-Email已存在】
    /// /summary>
    /// param name="user">用戶/param>
    /// returns>/returns>
    public override Response Add(User user)
    {
      Response _resp = new Response();
      //賬號(hào)是否存在
      if (!string.IsNullOrEmpty(user.Username)  HasUsername(user.Username))
      {
        _resp.Code = 2;
        _resp.Message = "用戶名已存在";
      }
      //Email是否存在
      if (!string.IsNullOrEmpty(user.Email)  HasUsername(user.Email))
      {
        _resp.Code = 3;
        _resp.Message = "Email已存在";
      }
      if(_resp.Code == 0) _resp = base.Add(user);
      return _resp;
    }

三、展示層

Ninesky.Web/Areas/Control/Controllers【右鍵】->添加->控制器。選擇 MVC5 控制器 – 空, 輸入控制器名稱UserController。

在控制器中引入命名空間Ninesky.Core;(1)

為控制器添加身份驗(yàn)證[AdminAuthorize](2)

添加變量private RoleManager roleManager = new RoleManager();(3)

1、用戶瀏覽

1.1、分頁列表方法

在UserController中添加方法PageListJson,返回Json格式的分頁數(shù)據(jù)。

/// summary>
    /// 分頁列表【json】
    /// /summary>
    /// param name="roleID">角色I(xiàn)D/param>
    /// param name="username">用戶名/param>
    /// param name="name">名稱/param>
    /// param name="sex">性別/param>
    /// param name="email">Email/param>
    /// param name="pageIndex">頁碼/param>
    /// param name="pageSize">每頁記錄數(shù)/param>
    /// param name="order">排序/param>
    /// returns>Json/returns>
    public ActionResult PageListJson(int? roleID, string username,string name,int? sex,string email,int? pageNumber, int? pageSize,int? order)
    {
      PagingUser> _pagingUser = new PagingCore.User>();
      if (pageNumber != null  pageNumber > 0) _pagingUser.PageIndex = (int)pageNumber;
      if (pageSize != null  pageSize > 0) _pagingUser.PageSize = (int)pageSize;
      var _paging = userManager.FindPageList(_pagingUser, roleID, username, name, sex, email, null);
      return Json(new { total = _paging.TotalNumber, rows = _paging.Items });
    }

1.2、默認(rèn)頁視圖

在UserController中添加Index方法

/// summary>
    /// 默認(rèn)頁
    /// /summary>
    /// returns>/returns>
    public ActionResult Index()
    {
      return View();
    }

在Index 方法上點(diǎn)右鍵 –>添加->視圖

@{
  ViewBag.Title = "用戶管理";
}

@section SideNav{@Html.Partial("SideNavPartialView")}

ol class="breadcrumb">
  li>span class="glyphicon glyphicon-home">/span> @Html.ActionLink("首頁", "Index", "Home")/li>
  li class="active">@Html.ActionLink("用戶管理", "Index", "User")/li>
/ol>

table id="usergrid">/table>
@section style{
  @Styles.Render("~/Content/bootstrapplugincss")
}

@section scripts{
  @Scripts.Render("~/bundles/jqueryval")
  @Scripts.Render("~/bundles/bootstrapplugin")
  script type="text/javascript">
    $(document).ready(function () {
      //表格
      var $table = $('#usergrid');
      $table.bootstrapTable({
        showRefresh: true,
        showColumns: true,
        pagination: true,
        sidePagination: "server",
        pageList:"[5, 10, 20, 50, 100]",
        method: "post",
        url: "@Url.Action("PageListJson")",
        columns: [
          { title: "ID", field: "UserID" },
          { title: "角色", field: "RoleID" },
          { title: "用戶名", field: "Username" },
          { title: "名稱", field: "Name", formatter: function (value, row, index) { return "a href='@Url.Action("Modify", "User")/" + row.UserID + "'>" + value + "/a>" } },
          { title: "性別", field: "Sex" },
          { title: "Email", field: "Email", visible:false },
          { title: "最后登錄時(shí)間", field: "LastLoginTime" },
          { title: "最后登錄IP", field: "LastLoginIP", visible:false },
          { title: "注冊(cè)時(shí)間", field: "RegTime",visible:false },
          { title: "操作", field: "UserID", formatter: function (value) { return "a class='btn btn-sm btn-danger' data-operation='deleteuser' data-value='" + value + "'>刪除/a>" } }
        ],
        onLoadSuccess: function () {
          //刪除按鈕
          //刪除按鈕結(jié)束
        }
      });
      //表格結(jié)束
    });
  /script>
}

1.3側(cè)導(dǎo)航局部視圖

Ninesky.Web/Areas/Control/Views/User【右鍵】->添加->視圖,輸入視圖名稱

div class="panel panel-default">
  div class="panel-heading">
    div class="panel-title">span class="glyphicon glyphicon-user">/span> 用戶管理/div>
  /div>
  div class="panel-body">
    div class="list-group">
      div class="list-group-item">span class="glyphicon glyphicon-plus">/span> @Html.ActionLink("添加用戶", "Add", "User")/div>
      div class="list-group-item">span class="glyphicon glyphicon-list">/span> @Html.ActionLink("用戶管理", "Index", "User")/div>
    /div>
  /div>
/div>

2、添加用戶

2.1 添加用戶視圖模型

Ninesky.Web/Areas/Control/Models【右鍵】->添加->“AddUserViewModel”

using System.ComponentModel.DataAnnotations;
using System.Web.Mvc;

namespace Ninesky.Web.Areas.Control.Models
{
  /// summary>
  /// 添加用戶視圖模型類
  /// /summary>
  public class AddUserViewModel
  {
    /// summary>
    /// 角色I(xiàn)D
    /// /summary>
    [Required(ErrorMessage = "必須選擇{0}")]
    [Display(Name = "角色I(xiàn)D")]
    public int RoleID { get; set; }

    /// summary>
    /// 用戶名
    /// /summary>
    [Remote("CanUsername","User",HttpMethod = "Post", ErrorMessage ="用戶名已存在")]
    [StringLength(50, MinimumLength = 4, ErrorMessage = "{0}長(zhǎng)度為{2}-{1}個(gè)字符")]
    [Required(ErrorMessage = "必須輸入{0}")]
    [Display(Name = "用戶名")]
    public string Username { get; set; }

    /// summary>
    /// 姓名【可做昵稱、真實(shí)姓名等】
    /// /summary>
    [StringLength(20, ErrorMessage = "{0}必須少于{1}個(gè)字符")]
    [Display(Name = "姓名")]
    public string Name { get; set; }

    /// summary>
    /// 性別【0-女,1-男,2-保密】
    /// /summary>
    [Required(ErrorMessage = "必須選擇{0}")]
    [Range(0, 2, ErrorMessage = "{0}范圍{1}-{2}")]
    [Display(Name = "性別")]
    public int Sex { get; set; }

    /// summary>
    /// 密碼
    /// /summary>
    [Required(ErrorMessage = "必須輸入{0}")]
    [DataType(DataType.Password)]
    [StringLength(256, ErrorMessage = "{0}長(zhǎng)度少于{1}個(gè)字符")]
    [Display(Name = "密碼")]
    public string Password { get; set; }

    /// summary>
    /// 確認(rèn)密碼
    /// /summary>
    [System.ComponentModel.DataAnnotations.Compare("Password",ErrorMessage ="兩次輸入的密碼不一致")]
    [DataType(DataType.Password)]
    [Display(Name = "確認(rèn)密碼")]
    public string ConfirmPassword { get; set; }

    /// summary>
    /// Email
    /// /summary>
    [Required(ErrorMessage = "必須輸入{0}")]
    [DataType(DataType.EmailAddress)]
    [Remote("CanEmail", "User",HttpMethod = "Post", ErrorMessage = "Email已存在")]
    [StringLength(50, MinimumLength = 4, ErrorMessage = "{0}長(zhǎng)度為{2}-{1}個(gè)字符")]
    [Display(Name = "Email")]
    public string Email { get; set; }
  }
}

模型中使用到了遠(yuǎn)程驗(yàn)證(Remote)、屬性比較(Compare)等驗(yàn)證方式。

2.2用戶名和Email遠(yuǎn)程驗(yàn)證方法

在UserController中添加CanUsername和CanEmail方法

/// summary>
    /// 用戶名是否可用
    /// /summary>
    /// param name="UserName">用戶名/param>
    /// returns>/returns> 
    [HttpPost]
    public JsonResult CanUsername(string UserName)
    {
      return Json(!userManager.HasUsername(UserName));
    }

    /// summary>
    /// Email是否存可用
    /// /summary>
    /// param name="Email">Email/param>
    /// returns>/returns> 
    [HttpPost]
    public JsonResult CanEmail(string Email)
    {
      return Json(!userManager.HasEmail(Email));
    }

2.3 添加用戶頁面

在UserController中添加Add方法

/// summary>
    /// 添加用戶
    /// /summary>
    /// returns>/returns>
    public ActionResult Add()
    {
      //角色列表
      var _roles = new RoleManager().FindList();
      ListSelectListItem> _listItems = new ListSelectListItem>(_roles.Count());
      foreach(var _role in _roles)
      {
        _listItems.Add(new SelectListItem() { Text = _role.Name, Value = _role.RoleID.ToString() });
      }
      ViewBag.Roles = _listItems;
      //角色列表結(jié)束
      return View();
    }

方法中向視圖傳遞角色列表ViewBag.Roles

右鍵添加視圖

代碼如下:

@model Ninesky.Web.Areas.Control.Models.AddUserViewModel

@{
  ViewBag.Title = "添加用戶";
}

@section SideNav{@Html.Partial("SideNavPartialView")}

ol class="breadcrumb">
  li>span class="glyphicon glyphicon-home">/span> @Html.ActionLink("首頁", "Index", "Home")/li>
  li> @Html.ActionLink("用戶管理", "Index", "User")/li>
  li class="active">@Html.ActionLink("添加用戶", "Add", "User")/li>
/ol>
@using (Html.BeginForm()) 
{
  @Html.AntiForgeryToken()
  
  div class="form-horizontal">
    hr />
    @Html.ValidationSummary(true, "", new { @class = "text-danger" })
    div class="form-group">
      @Html.LabelFor(model => model.RoleID, htmlAttributes: new { @class = "control-label col-md-2" })
      div class="col-md-10">
        @Html.DropDownListFor(model => model.RoleID, (IEnumerableSelectListItem>)ViewBag.Roles, new { @class = "form-control" });
        @Html.ValidationMessageFor(model => model.RoleID, "", new { @class = "text-danger" })
      /div>
    /div>

    div class="form-group">
      @Html.LabelFor(model => model.Username, htmlAttributes: new { @class = "control-label col-md-2" })
      div class="col-md-10">
        @Html.EditorFor(model => model.Username, new { htmlAttributes = new { @class = "form-control" } })
        @Html.ValidationMessageFor(model => model.Username, "", new { @class = "text-danger" })
      /div>
    /div>

    div class="form-group">
      @Html.LabelFor(model => model.Name, htmlAttributes: new { @class = "control-label col-md-2" })
      div class="col-md-10">
        @Html.EditorFor(model => model.Name, new { htmlAttributes = new { @class = "form-control" } })
        @Html.ValidationMessageFor(model => model.Name, "", new { @class = "text-danger" })
      /div>
    /div>

    div class="form-group">
      @Html.LabelFor(model => model.Sex, htmlAttributes: new { @class = "control-label col-md-2" })
      div class="col-md-10">
        @Html.RadioButtonFor(model => model.Sex, 1) 男
        @Html.RadioButtonFor(model => model.Sex, 0) 女
        @Html.RadioButtonFor(model => model.Sex, 2) 保密
        
        @Html.ValidationMessageFor(model => model.Sex, "", new { @class = "text-danger" })
      /div>
    /div>

    div class="form-group">
      @Html.LabelFor(model => model.Password, htmlAttributes: new { @class = "control-label col-md-2" })
      div class="col-md-10">
        @Html.EditorFor(model => model.Password, new { htmlAttributes = new { @class = "form-control" } })
        @Html.ValidationMessageFor(model => model.Password, "", new { @class = "text-danger" })
      /div>
    /div>
    div class="form-group">
      @Html.LabelFor(model => model.ConfirmPassword, htmlAttributes: new { @class = "control-label col-md-2" })
      div class="col-md-10">
        @Html.EditorFor(model => model.ConfirmPassword, new { htmlAttributes = new { @class = "form-control" } })
        @Html.ValidationMessageFor(model => model.ConfirmPassword, "", new { @class = "text-danger" })
      /div>
    /div>

    div class="form-group">
      @Html.LabelFor(model => model.Email, htmlAttributes: new { @class = "control-label col-md-2" })
      div class="col-md-10">
        @Html.EditorFor(model => model.Email, new { htmlAttributes = new { @class = "form-control" } })
        @Html.ValidationMessageFor(model => model.Email, "", new { @class = "text-danger" })
      /div>
    /div>

    div class="form-group">
      div class="col-md-offset-2 col-md-10">
        input type="submit" value="添加" class="btn btn-default" />
      /div>
    /div>
  /div>
}
@Scripts.Render("~/bundles/jqueryval")

2.4添加處理方法

UserController中添加Add(AddUserViewModel userViewModel)方法

[HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult Add(AddUserViewModel userViewModel)
    {
      if (userManager.HasUsername(userViewModel.Username)) ModelState.AddModelError("Username","用戶名已存在");
      if (userManager.HasEmail(userViewModel.Email)) ModelState.AddModelError("Email", "Email已存在");
      if (ModelState.IsValid)
      {
        Core.User _user = new Core.User();
        _user.RoleID = userViewModel.RoleID;
        _user.Username = userViewModel.Username;
        _user.Name = userViewModel.Name;
        _user.Sex = userViewModel.Sex;
        _user.Password = Core.General.Security.SHA256(userViewModel.Password);
        _user.Email = userViewModel.Email;
        _user.RegTime = System.DateTime.Now;
        var _response = userManager.Add(_user);
        if (_response.Code == 1) return View("Prompt",new Prompt() { Title="添加用戶成功",
         Message="您已成功添加了用戶【"+ _response.Data.Username+ "("+ _response.Data.Name + ")】",
         Buttons= new Liststring> {"a href=\"" + Url.Action("Index", "User") + "\" class=\"btn btn-default\">用戶管理/a>",
         "a href=\"" + Url.Action("Details", "User",new { id= _response.Data.UserID }) + "\" class=\"btn btn-default\">查看用戶/a>",
         "a href=\"" + Url.Action("Add", "User") + "\" class=\"btn btn-default\">繼續(xù)添加/a>"} });
        else ModelState.AddModelError("", _response.Message);
      }
      //角色列表
      var _roles = new RoleManager().FindList();
      ListSelectListItem> _listItems = new ListSelectListItem>(_roles.Count());
      foreach (var _role in _roles)
      {
        _listItems.Add(new SelectListItem() { Text = _role.Name, Value = _role.RoleID.ToString() });
      }
      ViewBag.Roles = _listItems;
      //角色列表結(jié)束

      return View(userViewModel);
    } 

2.5添加成功提示

UserController中[右鍵]添加視圖-Prompt

@model Ninesky.Web.Models.Prompt

@{
  ViewBag.Title = "提示";
}

@section SideNav{@Html.Partial("SideNavPartialView")}

ol class="breadcrumb">
  li>span class="glyphicon glyphicon-home">/span> @Html.ActionLink("首頁", "Index", "Home")/li>
  li class="active"> @Html.ActionLink("用戶管理", "Index", "User")/li>
/ol>
@Html.Partial("PromptPartialView", Model)

2.6 添加提示消息局部視圖

Ninesky.Web/Areas/Control/Views/Shared【右鍵】->添加->視圖。視圖名為PromptPartialView。

代碼如下:

@model Ninesky.Web.Models.Prompt

div class="panel panel-default">
  div class="panel-heading">div class="panel-title">@Model.Title/div>/div>
  div class="panel-body">
    p>@Html.Raw(Model.Message)/p>
    @if (Model.Buttons != null  Model.Buttons.Count > 0)
    {
      p>
        @foreach (var item in Model.Buttons)
        {
          @Html.Raw(item + "nbsp;nbsp;")

        }
      /p>
    }
  /div>
/div>

 運(yùn)行效果

===============================================================

前幾天就忙完了,中間休息了一下,順便調(diào)整一下狀態(tài)。

由于代碼20多天前些了一部分,到現(xiàn)在有些忘記當(dāng)時(shí)的想法了,今天又寫了一些感覺銜接不好,有點(diǎn)亂。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • ASP.NET Core 數(shù)據(jù)保護(hù)(Data Protection 集群場(chǎng)景)下篇
  • ASP.NET Core 數(shù)據(jù)保護(hù)(Data Protection)中篇
  • ASP.NET Core 數(shù)據(jù)保護(hù)(Data Protection)上篇
  • ASP.NET Core Kestrel 中使用 HTTPS (SSL)
  • ASP.NET Core集成微信登錄
  • 微信搶紅包ASP.NET代碼輕松實(shí)現(xiàn)
  • 基于ASP.NET實(shí)現(xiàn)日期轉(zhuǎn)為大寫的漢字
  • ASP.NET MVC5網(wǎng)站開發(fā)之用戶資料的修改和刪除3(七)
  • ASP.NET MVC5網(wǎng)站開發(fā)之用戶角色的后臺(tái)管理1(七)
  • ASP.NET 程序員都非常有用的85個(gè)工具

標(biāo)簽:湖北 綏化 試駕邀約 焦作 欽州 無錫 湘西 銅陵

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《ASP.NET MVC5網(wǎng)站開發(fā)之用戶添加和瀏覽2(七)》,本文關(guān)鍵詞  ASP.NET,MVC5,網(wǎng),站開,發(fā)之,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《ASP.NET MVC5網(wǎng)站開發(fā)之用戶添加和瀏覽2(七)》相關(guān)的同類信息!
  • 本頁收集關(guān)于ASP.NET MVC5網(wǎng)站開發(fā)之用戶添加和瀏覽2(七)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 濮阳市名利石化机械设备制造有限公司 | 机械化工工程有限公司| 大连行健数控机械技术有限公司 | 中远海运重工有限公司| 南通凯迪自动机械有限公司| 江苏柳工机械有限公司| 唐山榕丰钢铁有限公司| 昆山五金机械有限公司| 无锡开普机械有限公司| 邹平宏鑫机械有限公司| 河北洲际重工有限公司| 无锡工源机械有限公司| 郑州市联华机械制造有限公司| 山东威达机械有限公司| 南京凯友橡塑机械有限公司| 浙江制药机械有限公司| 东莞兆恒机械有限公司| 慈溪市宏晟机械设备有限公司| 上海机械成套设备有限公司| 河北春耕机械制造有限公司| 北京道森起点信息技术有限公司 | 东莞共荣精密机械有限公司| 博凯机械上海有限公司| 河南铁山起重设备有限公司| 青岛明高机械有限公司| 河北食品机械有限公司| 青岛国森机械有限公司| 乐星机械无锡有限公司| 泰田液压机械有限公司| 浙江瑞德森机械有限公司| 新乡高服机械有限公司| 广州工友起重设备制造有限公司| 山东重机械有限公司| 广东川德机械有限公司| 上海环野机械有限公司| 山西汉通机械有限公司| 长沙中南福鼎机械设备有限公司 | 纽科伦新乡起重机有限公司 | 浙江开诚机械有限公司| 浙江大宇轻工机械有限公司| 长沙聚邦机械设备有限公司| 长沙威沃机械制造有限公司| 江苏环保机械有限公司| 深圳中施机械设备有限公司| 宁波必沃纺织机械有限公司| 济南液压机械有限公司| 临沂市机械有限公司| 厦门东亚机械有限公司| 上海北阅机械设备有限公司| 无锡诺亚机械有限公司| 金田豪迈木业机械有限公司| 荣龙精密机械有限公司| 温州市春来包装机械有限公司| 青岛科尼乐重工有限公司| 连云港 机械有限公司| 徐州徐工基础工程机械有限公司| 恒昌机械制造有限公司| 浙江华业塑料机械有限公司| 优瑞纳斯液压机械有限公司| 广州美特机械有限公司| 广州力丰机械有限公司| 温州力冠机械有限公司| 亨内基机械上海有限公司| 济南龙安机械有限公司| 上海瑞派机械有限公司招聘| 安徽格瑞德机械制造有限公司| 宁波科鼎钢铁有限公司| 山东泰峰起重设备制造有限公司 | 上海冬松精密机械有限公司| 温州市友田包装机械有限公司| 上海塑料机械 有限公司| 浙江制药机械有限公司| 芜湖机械制造有限公司| 保定机械制造有限公司| 联程机械宁波有限公司| 江阴市永昌药化机械有限公司| 电子有限公司起名大全| 昆山乙盛机械有限公司招聘启事| 廊坊畅享机械有限公司| 山东贝特起重机有限公司| 成都康博机械有限公司| 郑州升升机械有限公司| 洛阳高峰工程机械有限公司| 龙海起重工具有限公司| 唐山盛财钢铁有限公司| 衢州 机械有限公司| 菲美得机械有限公司| 起帆电缆有限公司上市| 江阴派格机械设备有限公司| 迁安荣信钢铁有限公司| 洛阳耿力机械有限公司| 苏州联佳精密机械有限公司 | 上海青川机械配件有限公司| 无锡鹰贝机械有限公司| 宁波延晟机械有限公司| 小松山推工程机械有限公司| 嘉兴 机械有限公司| 河南共威机械设备有限公司| 苏州鸿本机械制造有限公司| 安徽方圆机械有限公司| 张家港重工有限公司| 河南 机械制造有限公司| 西安金力特机械设备有限公司| 上海荣沃机械有限公司| 河南丰泉机械有限公司| 青岛威尔塑料机械有限公司| 山矿机械设备有限公司| 山东锦坤机械有限公司| 河南省矿山起重机械有限公司| 重庆明华机械有限公司| 大连机械设备有限公司| 江阴起重机械有限公司| 浙江速成精密机械有限公司| 浙江万龙机械有限公司| 重庆精密机械有限公司| 郑州水工机械有限公司招聘| 河南星光机械有限公司| 甘肃机械化建设工程有限公司| 食品机械(上海)有限公司| 新疆起亚铝业有限公司招聘| 浙江陀曼精密机械有限公司| 盐城机械制造有限公司| 诸城市机械有限公司| 广西利维重工有限公司| 乐星机械无锡有限公司| 无锡精派机械有限公司| 河南天力起重机械有限公司| 重庆江增机械有限公司| 东莞市包装机械有限公司| 广州田田机械设备有限公司| 宏源机械设备有限公司| 重庆起重机厂有限公司| 泉州奇星机械有限公司| 大丰 机械有限公司| 上海国青机械有限公司| 郑州机械制造有限公司| 章丘市宇龙机械有限公司| 中核天津机械有限公司| 西安飞鸿机械有限公司| 湖南正中制药机械有限公司| 浙江斯耐达机械工具有限公司| 青岛九合重工机械有限公司| 上海立帆机械有限公司| 日照港达船舶重工有限公司| 山西海威钢铁有限公司| 上海精密机械制造有限公司| 广州卓远机械有限公司| 绍兴 机械 有限公司| 苏州市恒升机械有限公司| 绍兴机械制造有限公司| 江苏桂铭机械有限公司| 河南 机械有限公司| 大连矢岛机械有限公司| 河南耿力支护机械设备有限公司 | 江源机械制造有限公司| 广东锐亚机械有限公司| 山东液压机械有限公司| 山东枭隆机械有限公司| 河北卓昊机械制造有限公司| 高密高锻机械有限公司| 湖北江汉重工有限公司| 苏州信能精密机械有限公司| 上海佳力士机械有限公司| 南阳 机械 有限公司| 迪威玻璃机械有限公司| 江苏长虹涂装机械有限公司| 湖州机械设备有限公司| 山东永弘机械有限公司| 唐山文丰钢铁有限公司| 东营市机械有限公司| 青岛鳌福机械有限公司| 扬州市天发试验机械有限公司| 郑州矿山机械有限公司| 粮油机械设备有限公司| 宁波力源机械有限公司| 新乡市东源机械有限公司 | 广东佳明重工有限公司| 上海曼亿包装机械有限公司| 嘉兴市机械有限公司| 山东峻峰起重机械有限公司| 佛山突破机械制造有限公司| 瑞安市方泰机械有限公司 | 捷泰克机械有限公司| 上海丰禾精密机械有限公司| 上海德托机械有限公司| 昆山烽禾升精密机械有限公司| 机械加工有限公司简介| 苏州凯尔博精密机械有限公司 | 广州市日富包装机械有限公司| 大连 精密机械有限公司| 浙江海蜜机械有限公司| 浙江上易机械有限公司| 丰诺植保机械制造有限公司| 江苏东钢钢铁有限公司| 东莞机械设备制造有限公司| 唐山印刷机械有限公司| 大连橡塑机械有限公司| 山东兴田机械有限公司| 潍坊华全动力机械有限公司| 山东博杰重型工程机械有限公司 | 无锡诺德传动机械有限公司| 石家庄机械设备有限公司| 重庆渝辉机械有限公司| 东莞兆恒机械有限公司| 无锡盛达机械制造有限公司| 重庆维庆液压机械有限公司 | 安徽机械制造有限公司| 苏州盛友机械有限公司| 青岛山森机械有限公司| 潍坊元鸣机械有限公司| 温岭华驰机械有限公司| 上海上丰机械有限公司| 北京盛美食品机械有限公司| 江苏佳力起重机械制造有限公司| 东莞市包装机械有限公司| 福州六和机械有限公司| 潍坊裕川机械有限公司| 上海集嘉机械有限公司| 山东硕诚机械有限公司| 常熟神马机械有限公司| 太仓鸿安机械有限公司| 杭州海利机械有限公司| 瑞祥机械制造有限公司| 杭州海兴机械有限公司| 安庆恒昌机械有限公司| 唐山国义钢铁有限公司| 诸城市盛和机械有限公司| 杭州凯邦机械有限公司| 建荣精密机械有限公司| 东莞市实诚机械有限公司| 浙江隆信机械制造有限公司| 北京余特包装机械有限公司| 德阳瑞隆机械有限公司| 宝鸡 机械有限公司| 凹凸精密机械有限公司| 华电重工装备有限公司| 徐州机械设备有限公司| 江苏优轧机械有限公司| 广东中远海运重工有限公司| 浙江志高机械有限公司| 杭州食品机械有限公司| 昌信机械制造有限公司| 威海欧东机械有限公司骗局| 重庆舰帏机械有限公司| 佛山市劲雄机械有限公司| 青岛山森机械有限公司| 洛阳鑫超机械有限公司| 众力达机械有限公司| 江苏红旗印染机械有限公司| 邢台德龙钢铁有限公司| 东莞市机械制造有限公司| 佰源机械有限公司欠款| 鹤壁市通用机械电气有限公司| 苏州友众传动机械有限公司| 迎阳无纺机械有限公司| 大连鸿升机械有限公司| 南京聚力化工机械有限公司| 福建机械设备有限公司| 机械租赁有限公司名字| 安徽国梁机械设备有限公司| 新乡市矿山起重机械有限公司| 南通庞源机械工程有限公司| 济宁立派工程机械有限公司| 潍坊宝润机械有限公司| 上海机械装备有限公司| 河北卓昊机械制造有限公司| 铜陵群力机械有限公司| 日晗精密机械有限公司| 无锡胜麦机械有限公司| 苏州勤美达精密机械有限公司| 深圳精机械有限公司| 延边鸿起实业有限公司| 江苏江南起重机械有限公司| 山东兴华机械有限公司| 昆山塑料机械有限公司| 哈克农业机械装备制造有限公司 | 武安市文安钢铁有限公司| 郑州天龙机械有限公司| 苏州金纬机械制造有限公司| 隆英金坛机械有限公司| 江阴鼎力起重机械有限公司 | 苏州洁宝机械有限公司| 许昌智工机械制造有限公司 | 江苏民生重工有限公司| 广州凯诺机械有限公司| 东莞机械制造有限公司| 建设工程有限公司起名| 烟台万事达金属机械有限公司 | 河南点赞钢铁有限公司| 海宁市腾达机械有限公司| 南京建克机械有限公司| 广州市中铭印刷机械有限公司| 泰安越泰机械有限公司| 东泰机械制造有限公司| 东莞%机械制造有限公司| 山东兖州煤矿机械有限公司| 华宇机械制造有限公司| 河南 机械制造有限公司| 昆山富日精密机械有限公司| 精一机械(中山)有限公司| 瑞安市瑞博机械有限公司| 襄阳亚舟重型工程机械有限公司| 东莞市兆恒机械有限公司| 河南省新乡市矿山起重机有限公司 | 北京道森起点信息技术有限公司| 重庆智茂机械制造有限公司| 新乡市东振机械制造有限公司 | 温州天马食品包装机械制造有限公司 | 唐山安丰钢铁有限公司| 苏州松博机械有限公司| 嵩县煜嵩机械有限公司| 三益精密机械有限公司| 广州市广花包装机械有限公司 | 大连亨益机械有限公司| 中兴机械制造有限公司| 椿中岛机械有限公司| 丰凯机械制造有限公司| 佰源机械有限公司欠款| 平湖英厚机械有限公司| 张家港市旺巴巴机械有限公司| 路通重工机械有限公司| 柳州欧维姆机械有限公司| 广州坚诺机械设备有限公司| 唐山粤丰钢铁有限公司| 深圳市铭利达精密机械有限公司| 广东金兴机械有限公司| 保定机械制造有限公司| 东莞市兆恒机械有限公司| 福建机械工业有限公司| 迎阳无纺机械有限公司| 山东 机械制造有限公司| 聊城日发纺织机械有限公司| 华宝机械制造有限公司| 上海力克机械有限公司| 徐州世通重工机械制造有限公司| 沈阳鸿本机械有限公司| 上海宇减传动机械有限公司 | 信达重工苏州有限公司| 唐山丰润钢铁有限公司| 武汉萱裕机械有限公司| 江门振达机械有限公司| 上海冠龙阀门机械有限公司官网| 上海青川机械配件有限公司 | 河南安普包装机械制造有限公司| 兰州联合重工有限公司| 德州佳永机械制造有限公司| 四川青城机械有限公司| 武汉纵能机械制造有限公司| 郑州企鹅粮油机械有限公司| 无锡宝业机械有限公司| 汕头 机械有限公司招聘| 上海东芝机械有限公司| 粤北联合钢铁有限公司| 中联恒通机械有限公司| 上海宾迪机械设备有限公司| 盐城 机械 有限公司| 潍坊广德机械有限公司| 盐城市成功机械制造有限公司 | 鑫华机械制造有限公司| 郑州昌利机械制造有限公司| 台州宏汇机械有限公司| 浙江华昌液压机械有限公司| 财益机械工业有限公司| 东营嘉信机械有限公司| 山东博远重工有限公司| 广州日森机械有限公司| 上海乔麦包装机械有限公司| 东莞市固达机械制造有限公司| 襄阳博亚机械有限公司| 河南矿山起重机有限公司销售电话| 苏州科瑞机械有限公司| 苏州神峰起重机械有限公司| 温州轻工机械有限公司| 宝索机械制造有限公司| 海瑞克隧道机械有限公司| 北京大森长空包装机械有限公司| 宁波天瑞精工机械有限公司| 河南龙工机械制造有限公司| 江苏中圣机械制造有限公司| 矿山起重机有限公司| 嘉兴扬鑫机械有限公司| 济南金梭机械制造有限公司| 青岛诺机械有限公司| 浙江海工机械有限公司| 金鹰重型工程机械有限公司| 上海德珂斯机械自动化技术有限公司 | 蔚蓝机械设备有限公司| 无锡兆立精密机械有限公司| 龙口金正机械有限公司| 吉林牧神机械有限公司| 河南省邦恩机械制造有限公司| 苏州启点机械有限公司| 宁波华骏机械有限公司| 上海川源机械工程有限公司| 德昌誉机械制造有限公司| 抚顺中兴重工有限公司| 张家口中煤嘉益机械制造有限公司| 广东食品机械有限公司| 三联传动机械有限公司| 迁安鑫达钢铁有限公司| 广州伟基机械有限公司| 浙江铖虹机械有限公司| 上海国翔包装机械制造有限公司| 青岛机械利有限公司| 青岛宏达锻压机械有限公司| 邢台机械制造有限公司| 锦州天晟重工有限公司| 河南铁山起重设备有限公司| 诸城市华钢机械有限公司| 江阴市博越机械有限公司| 武汉 机械有限公司| 台州路桥机械有限公司| 大连 橡塑机械有限公司| 济南机械设备有限公司| 浙江大鹏机械有限公司| 福建泉工机械有限公司| 廊坊德基机械有限公司| 苏州雁达机械有限公司| 南京远景机械有限公司| 恒麦食品机械有限公司| 银丰弹簧机械设备制造有限公司| 东莞市日东超声波机械有限公司| 无锡市机械有限公司| 山东矿山机械 有限公司| 青岛德利机械有限公司| 中信重工开诚智能装备有限公司 | 东莞市泽源机械有限公司| 浙江嘉元机械制造有限公司| 新乡市特昌振动机械有限公司| 江苏泰美环保机械有限公司| 保定市恒瑞游乐机械有限公司| 辽阳喜旺机械制造有限公司| 无锡市双瑞机械有限公司| 河南博众机械制造有限公司| 常州玫尔机械有限公司| 宁波科鼎钢铁有限公司| 青岛日川精密机械有限公司| 杭州灵达机械有限公司| 郑州市同鼎机械设备有限公司 | 中山市翠山机械制造有限公司 | 济宁鑫宏工矿机械设备有限公司| 上海嘉歆包装机械有限公司 | 贵州华泰机械设备租赁有限公司 | 深圳液压机械有限公司| 机械成套设备有限公司| 芜湖 机械有限公司| 沈阳瑞熠机械有限公司| 东莞市数控机械有限公司| 东莞三机械有限公司| 广州 机械 有限公司| 上海斯特克沃森重工设备有限公司 | 济南龙铸液压机械有限公司| 嘉兴格鲁博机械有限公司| 宁波金亿精密机械有限公司| 广东长征机械有限公司| 力源液压机械有限公司| 武安市裕华钢铁有限公司| 千机械制造有限公司| 上海金相机械有限公司| 鼎泰盛机械有限公司| 普思信机械部件有限公司| 武安裕华钢铁有限公司| 宁波海雄塑料机械有限公司| 营口京华钢铁有限公司| 上海 食品机械有限公司| 广州市中铭印刷机械有限公司| 郑州祥龙建筑机械租赁有限公司| 台州工交机械有限公司| 江阴西城钢铁有限公司| 山东豪迈机械制造有限公司| 上海派协包装机械有限公司| 旭英机械有限公司招聘| 富信成机械有限公司| 上海天和制药机械有限公司| 东莞大兴发机械有限公司| 山东传洋钢铁有限公司| 中原圣起起重机械有限公司| 苏州精锐精密机械有限公司| 三明 机械有限公司| 汤阴升达机械有限公司| 河南飞龙工程机械制造有限公司| 南通太和机械有限公司| 潍坊重工机械有限公司| 瑞安市方泰机械有限公司| 苏州开隆机械有限公司| 济宁市福瑞得机械有限公司| 自贡机械制造有限公司| 山东泗水泰峰面粉机械有限公司| 乐星机械无锡有限公司| 重庆茂田机械有限公司| 滕州市美力机械有限公司| 无锡创能机械制造有限公司| 利星行机械昆山有限公司| 有限公司 印刷机械| 华丽木工机械有限公司| 建友机械设备有限公司| 青岛农业机械有限公司| 陕西鑫钢机械有限公司| 恒联食品机械有限公司| 莆田 机械有限公司| 河北联港废钢铁回收有限公司| 矿山机械制造有限公司| 保定锐腾机械制造有限公司| 建荣精密机械有限公司| 上海本优机械有限公司| 青岛安成食品机械有限公司| 杭州重型机械有限公司| 广州市广花包装机械有限公司| 东莞凯格精密机械有限公司 | 东莞豪力机械有限公司| 济南钢铁 有限公司| 上海红重机械装备有限公司| 江苏华澄重工有限公司| 常州欧鹰焊割机械有限公司| 河北德龙钢铁有限公司| 安徽宏远机械制造有限公司| 青岛莱恩机械有限公司| 张家港市塑机械有限公司| 上海百勤机械有限公司| 河北东方富达机械有限公司| 深圳市铭利达精密机械有限公司 | 河北机械进出口有限公司| 海的动力机械有限公司| 浙江永创机械有限公司| 海精密机械有限公司| 江苏正合重工有限公司| 山东 钢铁有限公司| 常州腾睿机械有限公司| 河北宏川机械制造有限公司| 广州甲宝机械有限公司| 藏不起服饰有限公司| 邯郸新兴重型机械有限公司| 冶金机械制造有限公司| 德阳川广机械有限公司| 江苏 机械有限公司| 宁波旭升机械有限公司| 河南旭矿机械有限公司| 唐山经安钢铁有限公司| 武汉臻尚机械设备有限公司| 玉溪新兴钢铁有限公司| 山东泗水泰峰面粉机械有限公司| 唐山化工机械有限公司| 上海嘉歆包装机械有限公司| 营口京华钢铁有限公司| 吉林牧神机械有限公司| 江阴液压机械有限公司| 上海瑞派机械有限公司| 河南柴油机重工有限公司| 鼎盛机械设备有限公司| 上海 包装机械有限公司| 浙江天泰机械有限公司| 安徽联塔盛通机械制造有限公司 | 东莞市途锐机械有限公司| 上海众和包装机械有限公司| 山东锦坤机械有限公司| 龙腾机械制造有限公司| 杭州恒宏机械有限公司| 常州市锦益机械有限公司| 杭州力诺机械设备有限公司 | 无锡博雅德精密机械有限公司| 蓬莱万寿机械有限公司| 台州华达机械有限公司| 杭州中亚机械 有限公司| 四川欧曼机械有限公司| 浙江德孚机械有限公司| 郑州中联收获机械有限公司| 扬州凯勒机械有限公司| 坎山机械有限公司招聘| 宁波机械制造有限公司| 顺昌机械制造有限公司| 苏州拓博机械有限公司| 常州迈腾机械有限公司| 韶瑞重工有限公司官网| 上海赛峰包装机械设备有限公司| 宁波迈拓斯数控机械有限公司| 常州市永明机械制造有限公司| 济南 升降机械有限公司| 重庆泰诺机械有限公司| 唐山利军机械有限公司| 河北冀工机械制造有限公司| 上海圣起包装机械有限公司| 广州市天烨食品机械有限公司| 河北敬业钢铁有限公司地址| 山东兴源机械有限公司| 上海宝峨机械有限公司| 石家庄美迪机械有限公司 | 上海钦典机械制造有限公司| 温州锐光机械有限公司| 徐州中嘉工程机械有限公司| 常州安捷起重吊装有限公司| 南通力威机械有限公司| 烟台华隆机械有限公司| 无锡美高帝机械有限公司| 上海松精机械制造有限公司 | 宁波迪恩机械有限公司| 苏州君驰联动机械有限公司| 中山市机械有限公司| 全精密机械有限公司| 佛山玻璃机械有限公司| 杭州星宏机械有限公司| 浙江双环传动机械有限公司| 龙文机械设备有限公司| 纸箱机械制造有限公司| 江苏冠宇机械设备制造有限公司| 宏源机械设备有限公司| 杭州铁牛机械有限公司| 西安海焱机械有限公司| 金华巨鑫机械有限公司| 山东天力液压机械有限公司| 永 机械 有限公司| 南阳 机械制造有限公司| 青岛欧普机械设备有限公司| 无锡宝露重工有限公司| 郑州鑫宇机械制造有限公司 | 山东金亿机械制造有限公司| 林州中奥机械有限公司| 合肥逸飞包装机械有限公司| 青岛天乐机械有限公司| 上海祝融起重机械有限公司 | 南通昭和机械有限公司| 盐城益聚达机械有限公司| 连云港市机械有限公司| 建湖县液压机械有限公司| 河南万合机械有限公司| 沂水巨龙机械有限公司| 德阳思远重工有限公司| 常州液压机械有限公司| 上海力克机械有限公司| 上海力克机械有限公司| 众立机械制造有限公司| 精一机械(中山)有限公司| 武汉萱裕机械有限公司| 青州康达机械有限公司| 吴江聚力机械有限公司| 北京城建重工有限公司| 星塔机械深圳有限公司| 山东康弘机械有限公司| 苏州日拓机械有限公司| 潞城兴宝钢铁有限公司| 河北宏发机械有限公司| 浙江保龙机械有限公司| 常州迈腾机械有限公司| 山东威力重工机床有限公司| 天津宏大纺织机械有限公司| 金坛包装机械有限公司| 吴江精密机械有限公司| 上海诺 机械有限公司| 宁波中机械有限公司| 安徽工程机械有限公司| 青州市三联重工设备制造有限公司| 佛山市包装机械有限公司| 长沙机械设备有限公司| 安徽宇华机械制造有限公司| 杭州力泰起重机械有限公司| 广州海缔机械有限公司| 三木机械制造实业有限公司| 佛山创宝包装机械有限公司| 昆山海进机械有限公司| 常州昊博机械有限公司| 广东省建筑工程机械施工有限公司| 安徽中科光电色选机械有限公司| 上海实机械有限公司| 浙江 机械 有限公司| 济南新思路机械设备有限公司 | 常州国丰机械有限公司| 常州机械制造有限公司| 唐山松汀钢铁有限公司| 黑龙江机械有限公司| 中阳钢铁有限公司官网| 威海华丰机械有限公司| 浩博机械制造有限公司| 高服筛分机械有限公司| 郑州水工机械有限公司| 赣云食品机械有限公司| 上海阿泰瑞克重工有限公司| 营口金辰机械有限公司| 大庆惠博普石油机械设备制造有限公司 | 重庆志成机械有限公司| 张家港市港丰机械有限公司| 佛山市顺德区金工铝门窗机械实业有限公司 | 沈阳机械设备有限公司| 重庆正格农业机械有限公司| 广东华菱机械有限公司| 矿山机械制造有限公司| 纽科伦新乡起重机有限公司 | 蚌埠 机械有限公司| 深圳市环球同创机械有限公司| 江苏正兴建设机械有限公司| 徐州工程机械有限公司| 郑州宇机械有限公司| 史陶比尔精密机械电子有限公司 | 苏州宁兴精密机械有限公司| 上海紫永机械有限公司| 潍坊圣川机械有限公司| 合肥旭龙机械有限公司| 有限公司名字起名大全| 佛山丰堡精密机械有限公司| 中科包装机械有限公司| 大庆机械制造有限公司| 上海德仁橡塑机械有限公司| 上海晶程机械有限公司| 徐工随车起重机有限公司| 成都 机械 有限公司| 台一精工机械有限公司| 山东金成机械有限公司| 北京印刷机械有限公司| 新疆丰泰钢铁有限公司| 嘉善远景机械有限公司| 马鞍山 重工机械有限公司| 广州益川机械有限公司| 佛山包装机械有限公司| 传动机械设备有限公司| 沧州沧狮磨浆机械有限公司| 长城重工机械有限公司| 郑州机械制造有限公司| 温州国伟印刷机械有限公司| 烟台鑫海矿山机械有限公司| 常州市菲德机械部件有限公司| 上海宾迪机械设备有限公司| 晋江海纳机械有限公司| 河南耿力支护机械设备有限公司| 南通凯瑞德机械有限公司| 唐山九江钢铁有限公司| 铁建重工包头有限公司| 徐州起重机械有限公司| 力 机械 有限公司| 大牧人机械有限公司| 江阴市液压机械有限公司| 苏州立注机械有限公司| 特斯克机械有限公司| 杭州中亚机械有限公司招聘| 常州曼恩机械有限公司| 快克数控机械有限公司| 上海航空机械有限公司| 绍兴 机械有限公司| 常州双鸟起重机械有限公司 | 昆山富日精密机械有限公司| 广东穗华机械设备有限公司| 武汉金火旺机械设备有限公司 | 鄂州鸿泰钢铁有限公司| 湖北创联重工有限公司| 唐山瑞兴钢铁有限公司| 青岛悦工机械有限公司| 南通宝钢钢铁有限公司| 河南机械设备制造有限公司| 上海钢铁交易中心有限公司| 山东铭德机械有限公司| 东莞市顺翼机械有限公司| 江苏优轧机械有限公司| 广州力丰机械有限公司| 南京机械设备制造有限公司| 重庆明华机械有限公司| 青岛精密机械有限公司| 唐山荣信钢铁有限公司| 沈阳凯力拓机械设备有限公司| 潍坊润鑫机械有限公司| 中车南口机械有限公司| 唐山机械设备有限公司| 佛山市优霸机械设备有限公司| 山东神州机械有限公司| 中山中炬精工机械有限公司| 上海熊猫机械有限公司| 机械设备有限公司经营范围| 大连 重工有限公司| 重庆九源机械有限公司| 东莞市金峥机械有限公司 | 安徽博行机械有限公司| 上海久协机械设备有限公司 | 无锡科创机械设计制造有限公司 | 杭州传动机械有限公司| 山东瑞泽重工有限公司| 徐州智茸工程机械有限公司| 深圳市钢铁有限公司| 河南卫华重型机械有限公司| 温州市友田包装机械有限公司| 山东工大机械有限公司| 上海德元机械设备有限公司| 东莞市精密机械制造有限公司| 嘉泰数控机械有限公司| 杭州西子重工有限公司| 山东锐驰机械有限公司| 深圳美鹏机械设备有限公司| 淄博协丰机械有限公司| 威海环宇化工机械有限公司 | 东莞市天周机械有限公司| 青岛威尔塑料机械有限公司| 新兴重工天津国际贸易有限公司 | 湖南中联陶瓷机械有限公司| 山东 钢铁有限公司| 浙江上石化机械有限公司| 济南格特机械设备有限公司| 河北冀工机械制造有限公司| 济南 液压机械有限公司| 杭州科豪机械有限公司| 南京泽创机械有限公司| 机械化工程有限公司| 聚力特机械有限公司| 浙江德玛克机械有限公司| 富达机械制造有限公司| 江苏苏盐阀门机械有限公司| 无锡威华机械有限公司| 济南中唐机械设备有限公司| 东元精密机械有限公司| 聊城机械设备有限公司| 江苏韩通船舶重工有限公司| 萧山天成机械有限公司| 苏州君驰联动机械有限公司| 青岛 钢铁有限公司| 深圳市合发齿轮机械有限公司 | 江苏瀚皋机械有限公司| 无锡市江益液压机械成套有限公司| 宝鸡中车时代工程机械有限公司| 佛山市机械有限公司| 仕诚塑料机械有限公司| 宣化华泰矿冶机械有限公司| 佛山市南海鼎工包装机械有限公司 | 广西柳工机械有限公司| 广东力丰机械制造有限公司| 宁波东泰机械有限公司| 常州倍安特动力机械有限公司| 上海江浪流体机械制造有限公司| 河南力博矿山机械有限公司| 深圳数控机械有限公司| 济南艺高数控机械有限公司| 南通航力重工机械有限公司| 宁波恒威机械有限公司| 福州闽台机械有限公司| 东阳机械制造有限公司| 上海百勤机械有限公司| 温州市顺达服装机械有限公司 | 郑州市联华机械制造有限公司| 上海熊猫机械有限公司| 重庆华世丹机械制造有限公司| 昆山东新力特精密机械有限公司| 杭州金丰机械有限公司| 温州正展机械有限公司| 昆山烽禾升精密机械有限公司| 无锡光良塑料机械有限公司| 南通佳吉机械有限公司| 常州坤世精密机械有限公司| 苏州精创机械有限公司| 河北天冠环保机械有限公司| 上海鹏则机械有限公司| 制药机械设备有限公司| 江苏江阴机械有限公司| 济南包装机械械有限公司| 江阴市化工机械有限公司| 廊坊百冠包装机械有限公司| 南京瑞亚挤出机械制造有限公司 | 佛山市机械有限公司| 天盛机械制造有限公司| 四平现代钢铁有限公司| 迁安九江钢铁有限公司| 长江机械设备有限公司| 上海起重机有限公司| 新宝泰钢铁有限公司| 无锡机械设备有限公司| 江苏舜工机械有限公司| 河北东方富达机械有限公司| 上海钦典机械制造有限公司| 江苏巨风机械制造有限公司| 广西玉柴重工有限公司| 苏州联又机械有限公司| 阜阳 机械 有限公司| 瑞安市机械制造有限公司| 张家港市机械制造有限公司| 北京道森起点信息技术有限公司| 台州宏汇机械有限公司| 佛山市康思达液压机械有限公司| 东莞市世翔精密机械制造有限公司| 江阴江顺精密机械零部件有限公司| 史陶比尔精密机械电子有限公司| 上海展仕机械设备有限公司| 无锡英那威特机械发展有限公司| 宁波海江机械制造有限公司| 丹阳市华泰制药机械有限公司| 济南齐力升降机械有限公司| 重庆龙建机械有限公司| 青岛奥威机械有限公司| 铜陵市富鑫钢铁有限公司| 济南泽机械有限公司| 丰机械有限公司怎么样| 机械加工 有限公司| 常州朝康机械有限公司| 上海先德机械工程有限公司| 济南科华机械有限公司| 营口隆仁重工有限公司| 莱州日进机械有限公司| 山东莱工机械制造有限公司| 江苏液压机械有限公司| 普特工程机械有限公司| 潍坊瑞发机械有限公司| 河南茂盛机械制造有限公司| 瑞鼎精密机械有限公司| 南京康尼精密机械有限公司| 郑州食品机械有限公司| 河南省矿山起重机制造有限公司| 佛山市奥索包装机械有限公司| 潍坊西泰机械有限公司| 凯格精密机械有限公司| 杭州迪迪机械有限公司| 浙江德孚机械有限公司| 上海钢铁交易中心有限公司| 江苏卫东机械有限公司| 无锡伊诺特石化机械设备有限公司| 苏州动力机械有限公司| 建材有限公司起名大全| 广州常富机械有限公司| 台正精密机械有限公司| 扬州涂装机械有限公司| 郑州市鼎盛机械制造有限公司| 新乡天丰机械有限公司| 江门市科杰机械自动化有限公司 | 东莞启益电器机械有限公司| 江门广力机械有限公司| 深圳旭生机械有限公司| 卓郎纺织机械有限公司| 京山 机械有限公司| 常州斯太尔动力机械有限公司| 荏原机械烟台有限公司| 泰上机械设备有限公司| 江苏贝尔机械有限公司| 青州市远航机械设备有限公司| 伟拓压铸机械有限公司| 浙江风驰机械有限公司| 济南新思路机械设备有限公司| 昆山裕邦机械有限公司| 东风悦达起亚汽车有限公司| 温州市鹿城江心服装机械有限公司| 上海恒启机械设备有限公司| 长沙威重化工机械有限公司 | 中信重工机器人有限公司| 上海红重机械装备有限公司 | 常州奥恒机械有限公司| 常州市丰丰机械有限公司| 济南市恒宇机械有限公司| 朝阳宏达机械有限公司| 武汉精密机械有限公司| 普思信机械部件有限公司| 江苏天宇机械有限公司| 瑞安市天晟包装机械有限公司| 泰安煤矿机械有限公司| 安丘机械制造有限公司| 沧州沧狮磨浆机械有限公司| 广东穗华机械设备有限公司| 江阴江顺精密机械零部件有限公司| 广州萱裕机械有限公司| 深圳市印刷机械有限公司| 郑州品创机械设备有限公司| 浙江冠林机械有限公司| 武汉山推机械有限公司| 浙江双联机械有限公司| 上海汉享食品机械有限公司 | 山东利丰机械有限公司| 无锡 液压机械有限公司| 湘元三一机械有限公司| 山东莱工机械制造有限公司 | 食品有限公司起名大全| 武汉中轻机械有限公司| 河南工程机械有限公司| 山东利达工程机械有限公司| 苏州朗威电子机械有限公司| 广州田田机械有限公司| 郑州天龙机械有限公司| 机械化工程有限公司| 北京大起空调有限公司| 山东 食品机械 有限公司| 河南三星机械有限公司| 天津百利二通机械有限公司| 佛山市创宝包装机械有限公司 | 苏州擎邦机械有限公司| 上海信机械有限公司| 张家口煤矿机械制造有限公司| 南阳机械制造有限公司| 上海宾迪机械设备有限公司| 武汉机械工程有限公司| 唐山神州机械有限公司| 哈尔滨机械制造有限公司| 浙江海重重工有限公司| 广州闽欣机械设备有限公司| 济南四通机械有限公司| 中山市信元铝门窗机械制造有限公司 | 合肥逸飞包装机械有限公司| 博路威机械江苏有限公司| 深圳旭生机械有限公司| 湖南工程机械有限公司| 南通牧野机械有限公司| 天津市申成包装机械有限公司| 张家港市机械有限公司| 杭州萧山鼎立机械有限公司| 宿迁机械制造有限公司| 江苏佳粮机械有限公司| 杭州力泰起重机械有限公司| 泰安嘉和重工机械有限公司| 潍坊天宇机械有限公司| 山东 机械制造有限公司| 苏州市联佳精密机械有限公司| 芜湖汇丰机械工业有限公司| 浙江工程机械有限公司|