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

主頁 > 知識庫 > 利用ASP.NET MVC+EasyUI+SqlServer搭建企業開發框架

利用ASP.NET MVC+EasyUI+SqlServer搭建企業開發框架

熱門標簽:代理接電話機器人如何取消 地圖標注的公司有哪些 地圖定位圖標標注 塔城代理外呼系統 濮陽外呼電銷系統怎么樣 地圖標注專業團隊 天心智能電銷機器人 400電話辦理哪家性價比高 遂寧市地圖標注app

我們要搭建的框架是企業級開發框架,適用用企業管理信息系統的開發,如:OA、HR等

1、框架名稱:sampleFrame。

2、搭建原則:最少知識原則。

3、先定義一個簡單的編碼規范:除類名和接口名外,其余首字母小寫。

4、準備開發環境:vs2010及以上(mvc4)、sqlserver、jquery2.0和easyui1.4.5

首先來看一下列表頁面的效果圖:

我們期望簡潔帶前臺代碼,如下:

table id="dataGrid" class="easyui-datagrid" url="getList" toolbar="#toolbar">
 thead>
 tr>
  th field="customerId" sortable="true" data-options="sortable:true" width="50">
  customerId
  /th>
  th field="companyName" data-options="sortable:true" width="50">
  companyName
  /th>
  th field="phone" width="50">
  phone
  /th>
  th field="address" width="50">
  address
  /th>
 /tr>
 /thead>
/table>
div id="toolbar">
 div>
 a class="easyui-linkbutton" iconcls="icon-add" onclick="add();">添加/a>
 a class="easyui-linkbutton" iconcls="icon-edit" onclick="edit();">修改/a>
 a class="easyui-linkbutton" iconcls="icon-remove" onclick="del();">刪除/a>
 /div>
 div>
 input id="queryBox" class="easyui-textbox" buttonicon="icon-search" style="width: 200px;"
  data-options="onClickButton:function(){loadList(loadListSettings);}" />
 a class="easyui-linkbutton" iconcls="icon-find" onclick="showQueryWindow();">
  詳細查詢/a>
 /div>
/div>
script type="text/javascript">
 var loadListSettings = { searchFields: "customerId,companyName", prompt: "請輸入客戶Id或公司名稱" };
/script>
script type="text/javascript">
 pageInit(); 
/script>

為了這樣簡潔的前臺,我們需要準備:

1、通用的布局模板_Layout.cshtml。base.css、base.js、defaultSettings.js、tool.js和private.js見后面

!doctype html>
html>
head>
 meta charset="utf-8" />
 meta name="viewport" content="width=device-width" />
 meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1" />
 link href='/webResource/easyui/themes/default/easyui.css' rel='stylesheet' type='text/css' />
 link href='/webResource/easyui/themes/icon.css' rel='stylesheet' type='text/css' />
 link href='/webResource/base.css' rel='stylesheet' type='text/css' />
 script src="/webResource/jquery/jquery.min.js" type="text/javascript">/script>
 script src="/webResource/jquery/json2.js" type="text/javascript">/script>
 script src="/webResource/easyui/jquery.easyui.min.js" type="text/javascript">/script>
 script src="/webResource/easyui/locale/easyui-lang-zh_CN.js" type="text/javascript">/script>
 script src="/webResource/tool.js" type="text/javascript">/script>
 script src="/webResource/base.js" type="text/javascript">/script>
 script src="/webResource/defaultSettings.js" type="text/javascript">/script>
 script src="/webResource/private.js" type="text/javascript">/script>
 @RenderSection("scripts", required: false)
/head>
body style="width: 100%; height: 100%; margin: 0px;">
 @RenderBody()
/body>
/html>

2、平臺樣式表base.css

.icon-find
{
 background: url('icons/find.png') no-repeat center center;
}

.datagrid-toolbar div:nth-child(1)
{
 float: left;
 width: 60%;
}
.datagrid-toolbar div:nth-child(2)
{
 margin-left: 60%;
 margin-right: 10px;
 width: auto;
 text-align: right;
}

3、基本方法腳本base.js

//取消自動渲染
$.parser.auto = false;

function pageInit() {

 //改變控件默認值
 $.fn.linkbutton.defaults.plain = true;
 $.fn.datagrid.defaults.fit = true;
 $.fn.datagrid.defaults.fitColumns = true;
 $.fn.datagrid.defaults.pagination = true;

 //顯示ajax異常信息
 $(document).ajaxError(function (event, xhr, options, exc) {
 $.messager.alert({ title: '異步請求出錯', msg: xhr.responseText, icon: "error" });
 });

 //地址欄傳參允許中文
 jQuery(document).ajaxSend(function (event, request, options) {
 options.url = encodeURI(options.url);
 });

 $.parser.parse();
}

function loadList(settings) {
 var settings = $.extend(true, {}, loadListDefaultSettings, settings);

 if ($("#" + settings.gridId).length == 0)
 $.messager.alert({ title: "系統異常", msg: "DataGrid:" + settings.gridId + "不存在!", icon: "error" });

 var quickQueryData = [];
 if ($("#" + settings.queryBoxId).length > 0) {
 var val = $("#" + settings.queryBoxId).textbox("getValue");
 if (settings.searchFields  val) {
  var keys = settings.searchFields.split(',');
  for (i = 0, len = keys.length; i  len; i++) {
  quickQueryData.push({ field: keys[i], method: 'inLike', value: val });
  }
 }
 }

 var queryData = []; //詳細查詢預留 

 //加載數據
 $("#" + settings.gridId).datagrid("load", { quickQueryData: JSON.stringify(quickQueryData), queryData: JSON.stringify(queryData) });
}

4、基本腳本默認值defaultSettings.js

//查詢參數設置
var loadListDefaultSettings = {
 url: "getList",
 gridId: "dataGrid",
 queryWindowId: "queryWindow",
 queryBoxId: "queryBox",
 searchFields: "Name",
 addQueryString: true,
 prompt: "請輸入"
};



5、可能需要使用的工具方法tool.js

//判斷是否包含地址欄參數
function hasQueryString(key, url) {
 if (typeof (url) == "undefined")
 url = window.location.search;

 var re = new RegExp("[?]" + key + "=([^\\]*)", "i");
 var a = re.exec(url);
 if (a == null) return false;
 return true;
}

//獲取地址欄參數,如果參數不存在則返回空字符串
function getQueryString(key, url) {
 if (typeof (url) == "undefined")
 url = window.location.search;
 var re = new RegExp("[?]" + key + "=([^\\]*)", "i");
 var a = re.exec(url);
 if (a == null) return "";
 return a[1];
}

//將當前地址欄參數加入到url
function addUrlSearch(url) {
 var newParams = [];

 var paramKeys = window.location.search.replace('?', '').split('');
 for (var i = 0; i  paramKeys.length; i++) {
 var key = paramKeys[i].split('=')[0];
 if (key == "" || key == "_t" || key == "_winid" || key == "isTab")
  continue;
 if (!hasQueryString(key, url))
  newParams.push(paramKeys[i]);
 }

 if (url.indexOf('?') >= 0)
 return url + "" + newParams.join('');
 else
 return url + "?" + newParams.join('');
}

//url增加參數
function addSearch(url, key, value) {
 if (!hasQueryString(key, url)) {
 if (url.indexOf('?') >= 0)
  return url + "" + key + "=" + value;
 else
  return url + "?" + key + "=" + value;
 }
 else
 return url;
}

//獲取數組中對象的某個值,逗號分隔
function getValues(rows, attr) {
 var fieldValues = [];
 for (var i = 0; i  rows.length; i++) {
 if (rows[i] != null)
  fieldValues.push(rows[i][attr]);
 }
 return fieldValues.join(',');
}

6、可能需要使用的私有方法private.js,此文件包含的方法專供base.js使用,開發web時禁止使用

//替換掉Url中的{}參數
function replaceUrl(settings, pty) {
 if (!pty)
 pty = "url";
 if (!settings[pty])
 return;
 var str = settings[pty];
 var guid = "";
 var result = str.replace(/\{[0-9a-zA-Z_]*\}/g, function (e) {
 var key = e.substring(1, e.length - 1);

 if (key == "GUID") {
  if (!guid) {
  $.ajax({
   url: "getGuid",
   type: "post",
   async: false,
   success: function (text, textStatus) {
   guid = text;
   }
  });
  }
  return guid;
 }
 if (hasQueryString(key)) //從地址欄返回
  return getQueryString(key);
 if (settings.currentRow  settings.currentRow[key])//從當前行返回
  return settings.currentRow[key];
 if (settings.paramFrom) { //從指定控件返回
  var ctrl = mini.get(settings.paramFrom);
  if (ctrl == undefined) {
  $.messager.alert({ title: 'UI出錯', msg: "Id為" + settings.paramFrom + "的控件不存在!", icon: "error" });  
  return;
  }
  else if (ctrl.showCheckBox) {
  return getValues(ctrl.getCheckedNodes(), key);
  }
  else if (ctrl.getSelecteds)
  return getValues(ctrl.getSelecteds(), key);
  else if (ctrl.getValue)
  return ctrl.getValue();
 }

 return e;
 });

 settings[pty] = result;
 return result;
}

//轉化為全路徑
function changeToFullUrl(settings) {
 var url = settings.url;
 if (url.indexOf('/') == 0 || url.indexOf("http://") == 0 || url.indexOf('?') == 0 || url == "")
 return url;


 currentUrlPathName = window.location.pathname;

 var currentPathNameParts = currentUrlPathName.split('/');
 var pathNameParts = url.split('?')[0].split('/');
 if (currentPathNameParts[currentPathNameParts.length - 1] == "")
 currentPathNameParts.pop(); //去掉一個反斜線
 if (pathNameParts[pathNameParts.length - 1] == "")
 pathNameParts.pop(); //去掉一個反斜線


 var index = currentPathNameParts.length - 1;

 for (var i = 0; i  pathNameParts.length; i++) {
 if (pathNameParts[i] == "..") {
  index = index - 1;
  if (index = 0) {
  $.messager.alert({ title: "系統異常", msg: "Url錯誤:" + url + "!", icon: "error" });
return;
  }
  continue;
 }

 if (index  currentPathNameParts.length)
  currentPathNameParts[index] = pathNameParts[i];
 else
  currentPathNameParts.push(pathNameParts[i]);
 index = index + 1;
 }
 var length = currentPathNameParts.length;
 for (var i = index; i  length; i++) {
 currentPathNameParts.pop();
 }

 var result = currentPathNameParts.join('/');

 if (url.indexOf('?') > 0)
 result += url.substring(url.indexOf('?'));

 settings.url = result;
}

我們期望簡潔的后臺代碼,如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using formula;
using System.Data;

namespace demo.Areas.basic.Controllers
{
 public class customerController : BaseController
 {
 public JsonResult getList(QueryBuilder qb)
 {
  SqlHelper sqlHelper = new SqlHelper("demo");
  var data = sqlHelper.ExecuteGridData("select *,id=customerId from customer", qb);
  return Json(data);
 }
 }
}

為了這種簡潔的代碼我們需要:

1、Controller基類BaseController:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.Mvc;
using System.Data.Entity;
using System.Data.SqlClient;
using System.Data.Entity.Validation;
using System.ComponentModel;
using System.Reflection;
using System.Web.Security;
using formula;

namespace formula
{
 public abstract class BaseController : Controller
 {
 #region 處理不存在的Action

 protected override void HandleUnknownAction(string actionName)
 {
  if (Request.HttpMethod == "POST")
  {
  HttpContext.ClearError();
  HttpContext.Response.Clear();
  HttpContext.Response.StatusCode = 500;
  HttpContext.Response.Write("沒有Action:" + actionName);
  HttpContext.Response.End();
  }

  // 搜索文件是否存在
  var filePath = "";
  if (RouteData.DataTokens["area"] != null)
  filePath = string.Format("~/Areas/{2}/Views/{1}/{0}.cshtml", actionName, RouteData.Values["controller"], RouteData.DataTokens["area"]);
  else
  filePath = string.Format("~/Views/{1}/{0}.cshtml", actionName, RouteData.Values["controller"]);
  if (System.IO.File.Exists(Server.MapPath(filePath)))
  {
  View(filePath).ExecuteResult(ControllerContext);
  }
  else
  {
  HttpContext.ClearError();
  HttpContext.Response.Clear();
  HttpContext.Response.StatusCode = 500;
  HttpContext.Response.Write("沒有Action:" + actionName);
  HttpContext.Response.End();
  }
 }
 #endregion

 #region 基類Json方法重載

 protected override JsonResult Json(object data, string contentType, Encoding contentEncoding, JsonRequestBehavior behavior)
 {
  NewtonJsonResult result = new NewtonJsonResult() { Data = data, ContentType = contentType, ContentEncoding = contentEncoding, JsonRequestBehavior = behavior };

  return result;
 }
 protected override JsonResult Json(object data, string contentType, Encoding contentEncoding)
 {
  NewtonJsonResult result = new NewtonJsonResult() { Data = data, ContentType = contentType, ContentEncoding = contentEncoding };

  return result;
 }

 #endregion

 #region 異常處理

 protected override void OnException(ExceptionContext filterContext)
 {
  Exception exp = filterContext.Exception;
  if (string.IsNullOrEmpty(exp.Message))
  exp = exp.GetBaseException();

  if (filterContext.RequestContext.HttpContext.Request.IsAjaxRequest())
  {
  var response = filterContext.RequestContext.HttpContext.Response;
  response.Clear();
  response.Write(exp.Message);
  response.StatusCode = 500;
  response.End();
  }
 }

 #endregion
 }

}

2、查詢構造器QueryBuilder:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
using System.Web.Mvc;

namespace formula
{
 [ModelBinder(typeof(QueryBuilderBinder))]
 public class QueryBuilder : SearchCondition
 {
 public int page { get; set; }
 public int rows { get; set; }
 public string sort { get; set; }
 public string order { get; set; }
 public int total { get; set; }

 public string getOrderByString(bool hasOrderBy = true)
 {
  var sortFields = this.sort.Split(',');
  var sortOrders = this.order.Split(',');

  string str = "";
  for (int i = 0; i  sortFields.Length; i++)
  {
  str += sortFields[i] + " " + sortOrders[i] + ",";
  }
  if (hasOrderBy  str != "")
  str = "order by " + str;
  return str.Trim(',');
 }

 }

 public class SearchCondition
 {
 public string fields = "*";
 private ListConditionItem> quickItems = new ListConditionItem>();
 private ListConditionItem> complexItems = new ListConditionItem>();

 public SearchCondition add(string field, string method, object val, bool isQuickSearch = false)
 {
  //處理日期型數據
  if (method == "" || method == "=")
  {
  if (val.GetType() == typeof(DateTime))
  {
   DateTime t = (DateTime)val;
   val = t.Date.AddHours(23).AddMinutes(59).AddSeconds(59);
  }
  }

  ConditionItem item = new ConditionItem(field, method, val);
  if (isQuickSearch)
  quickItems.Add(item);
  else
  complexItems.Add(item);
  return this;
 }


 public string getWhereString(bool hasWhere = true)
 {
  if (quickItems.Count == 0  complexItems.Count == 0)
  return "";

  string strWhere = "";

  if (quickItems.Count > 0)
  strWhere += " and (" + getGourpWhereString(quickItems, true) + ")";
  if (complexItems.Count > 0)
  strWhere += " and (" + getGourpWhereString(complexItems, false) + ")";

  if (hasWhere)
  strWhere = " where " + strWhere.Substring(4);
  else
  strWhere = " and " + strWhere.Substring(4);

  return strWhere;
 }

 #region 私有方法

 private string getGourpWhereString(ListConditionItem> list, bool isOrRelation = false)
 {

  if (list.Count == 0)
  return "";

  string strWhere = "";
  for (int i = 0; i  list.Count(); i++)
  {
  var item = list[i];
  string str = item.getWhereString();

  if (isOrRelation)
  {
   strWhere += " or " + str;
  }
  else
  {
   strWhere += " and " + str;
  }
  }

  strWhere = strWhere.Substring(4);

  return strWhere;
 }


 #endregion

 }

 public class ConditionItem
 {
 public ConditionItem(string field, string method, object val)
 {
  this.field = field;
  this.method = method;
  this.value = val;
 }
 public string field { get; set; }
 public string method { get; set; }
 public object value { get; set; }


 public string getWhereString()
 {
  var item = this;
  switch (item.method)
  {
  case "=":
  case "":
  case ">":
  case "=":
  case ">=":
  case ">":
   return string.Format("{0} {1} '{2}'", item.field, item.method, item.value);
  case "in":
   string v = "";
   if (item.value is ICollection)
   {
   ICollectionstring> collection = item.value as ICollectionstring>;
   v = string.Join("','", collection.ToArraystring>());
   return string.Format("{0} in('{1}')", item.field, v);
   }
   else
   {
   v = item.value.ToString().Replace(",", "','");
   }
   return string.Format("{0} in ('{1}')", item.field, v);
  case "between":
   object[] objs = item.value as object[];
   return string.Format("{0} between '{1}' and '{2}'", item.field, objs[0], objs[1]);
  case "inLike":
   string[] arr = null;
   if (item.value is ICollection)
   {
   ICollectionstring> collection = item.value as ICollectionstring>;
   arr = collection.ToArraystring>();
   }
   else
   {
   arr = item.value.ToString().Split(',', ',');
   }
   string str = "";
   foreach (string s in arr)
   {
   str += string.Format("or {0} like '%{1}%'", item.field, s);
   }
   return "(" + str.Substring(3) + ")";
  case "day":
   DateTime dt = DateTime.Now;
   if (!DateTime.TryParse(item.value.ToString(), out dt))
   {
   throw new BuessinessException("查詢條件不能轉化為日期時間");
   }
   string start = dt.Date.ToString("yyyy-MM-dd");
   string end = dt.Date.AddDays(1).ToString("yyyy-MM-dd");
   return string.Format("{0} between '{1}' and '{2}'", item.field, start, end);
  case "startWith":
   return string.Format("{0} like '{1}%'", item.field, item.value);
  case "endWith":
   return string.Format("{0} like '%{1}'", item.field, item.value);
  default:
   return "";
  }



 }
 }
}

3、查詢構造器QueryBuilder的創建方法QueryBuilderBinder:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.Mvc;

namespace formula
{
 public class QueryBuilderBinder : IModelBinder
 {
 public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
 {
  var qb = (QueryBuilder)(bindingContext.Model ?? new QueryBuilder());
  var dict = controllerContext.HttpContext.Request.Params;

  var quickQueryList = !string.IsNullOrEmpty(dict["quickQueryData"]) ? JsonHelper.ToList(dict["quickQueryData"]) : new ListDictionarystring, object>>();
  var queryList = !string.IsNullOrEmpty(dict["queryData"]) ? JsonHelper.ToList(dict["queryData"]) : new ListDictionarystring, object>>();

  foreach (var dic in quickQueryList)
  {
  var val = dic["value"].ToString();
  if (val == "") continue;
  qb.add(dic["field"].ToString(), dic["method"].ToString(), val, true);
  }

  foreach (var dic in queryList)
  {
  var val = dic["value"].ToString();
  if (val == "") continue;
  qb.add(dic["field"].ToString(), dic["method"].ToString(), val, false);
  } 

  qb.page = !string.IsNullOrEmpty(dict["page"]) ? int.Parse(dict["page"].ToString()) : 1;
  qb.rows = !string.IsNullOrEmpty(dict["rows"]) ? int.Parse(dict["rows"].ToString()) : 10;
  qb.sort = !string.IsNullOrEmpty(dict["sort"]) ? dict["page"].ToString() : "id";
  qb.order = !string.IsNullOrEmpty(dict["order"]) ? dict["order"].ToString() : "desc";

  return qb;

 }
 }
}

4、數據庫查詢幫助類SqlHelper:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Data;
using System.Web;

namespace formula
{
 public class SqlHelper
 {
 #region 構造函數

 public SqlHelper(string connName)
 {
  if (System.Configuration.ConfigurationManager.ConnectionStrings[connName] == null)
  throw new BuessinessException(string.Format("配置文件中不包含數據庫連接字符串:{0}", connName));
  this.connName = connName;
  this.connString = System.Configuration.ConfigurationManager.ConnectionStrings[connName].ConnectionString;
 }

 public string connName { get; private set; }
 public string connString { get; private set; }
 public string dbName
 {
  get
  {
  SqlConnection conn = new SqlConnection(connString);
  return conn.Database;
  }
 }

 #endregion

 #region 基本方法

 public object ExecuteScalar(string cmdText)
 {
  using (SqlConnection conn = new SqlConnection(connString))
  {
  conn.Open();
  SqlCommand cmd = new SqlCommand(cmdText, conn);
  return cmd.ExecuteScalar();  
  }
 }



 public DataTable ExecuteDataTable(string cmdText)
 {
  using (SqlConnection conn = new SqlConnection(connString))
  {
  DataTable dt = new DataTable();
  SqlDataAdapter apt = new SqlDataAdapter(cmdText, conn);
  apt.Fill(dt);
  return dt;
  }
 }

 public DataTable ExecuteDataTable(string cmdText, int start, int len)
 {
  using (SqlConnection conn = new SqlConnection(connString))
  {
  DataTable dt = new DataTable();
  SqlDataAdapter apt = new SqlDataAdapter(cmdText, conn);
  apt.Fill(start, len, dt);
  return dt;
  }
 }


 public string ExecuteNonQuery(string cmdText)
 {
  using (SqlConnection conn = new SqlConnection(connString))
  {
  conn.Open();
  SqlCommand cmd = new SqlCommand(cmdText, conn);
  return cmd.ExecuteNonQuery().ToString();
  }
 }

 #endregion

 #region 支持查詢對象

 public DataTable ExecuteDataTable(string sql, SearchCondition cnd, string orderBy)
 {
  string sqlWhere = " where 1=1" + GetUrlFilterSqlWhere(sql) + cnd.getWhereString(false);
  sql = string.Format("select {0} from ({1}) sourceTable {2} {3}", cnd.fields, sql, sqlWhere, orderBy);
  DataTable dt = this.ExecuteDataTable(sql);
  return dt;
 }

 public Dictionarystring, object> ExecuteGridData(string sql, QueryBuilder qb)
 {
  string sqlWhere = " where 1=1" + GetUrlFilterSqlWhere(sql) + qb.getWhereString(false);

  qb.total = (int)this.ExecuteScalar(string.Format("select count(1) from ({0}) sourceTable {1}", sql, sqlWhere));

  sql = string.Format("select {0} from ({1}) sourceTable {2} {3}", qb.fields, sql, sqlWhere, qb.getOrderByString());
  DataTable dt = ExecuteDataTable(sql, (qb.page - 1) * qb.rows, qb.rows);

  Dictionarystring, object> dic = new Dictionarystring, object>();
  dic.Add("total", qb.total);
  dic.Add("rows", dt);  
  return dic;
 }

 #endregion

 #region 私有方法

 private string GetUrlFilterSqlWhere(string sql)
 {
  sql = string.Format("select * from({0}) as dt1 where 1=2", sql);
  var dtField = ExecuteDataTable(sql);

  StringBuilder sb = new StringBuilder();
  foreach (string key in HttpContext.Current.Request.QueryString.Keys)
  {
  if (string.IsNullOrEmpty(key) || key.ToLower() == "id")
   continue;

  if (dtField.Columns.Contains(key))
  {
   string value = HttpContext.Current.Server.UrlDecode(HttpContext.Current.Request[key]);
   value = value.Replace(",", "','");
   sb.AppendFormat(" and {0} in ('{1}')", key, value);
  }
  }
  return sb.ToString();
 }

 #endregion

 }
}

5、用于取代返回值JsonResult的NewtonJsonResult:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.Mvc;
using System.Web;
using System.Data;

namespace formula
{
 public class NewtonJsonResult : JsonResult
 {
 public override void ExecuteResult(ControllerContext context)
 {
  //確認是否用于響應HTTP-Get請求
  if (this.JsonRequestBehavior == JsonRequestBehavior.DenyGet 
  string.Compare(context.HttpContext.Request.HttpMethod, "GET", true) == 0)
  {
  throw new InvalidOperationException("禁止Get請求");
  }

  HttpResponseBase response = context.HttpContext.Response;
  //設置媒體類型和編碼方式
  response.ContentType = string.IsNullOrEmpty(this.ContentType) ?
  "application/json" : this.ContentType;
  if (this.ContentEncoding != null)
  {
  response.ContentEncoding = this.ContentEncoding;
  }

  //序列化對象,并寫入當前的HttpResponse
  if (null == this.Data) return;


  if (this.Data is string)
  {
  response.Write(Data);
  }
  else if (this.Data is DataRow)
  {
  Dictionarystring, object> dic = new Dictionarystring, object>();
  DataRow row = this.Data as DataRow;
  foreach (DataColumn col in row.Table.Columns)
  {
   dic.Add(col.ColumnName, row[col]);
  }
  response.Write(JsonHelper.ToJson(dic));
  }
  else
  {
  response.Write(JsonHelper.ToJson(this.Data));
  }
 }
 }

}

6、Json序列化和反序列的幫助類JsonHelper:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Newtonsoft.Json.Converters;
using Newtonsoft.Json;

namespace formula
{
 public static class JsonHelper
 {
 public static string ToJsonT>(T obj)
 {

  if (obj == null || obj.ToString() == "null") return null;

  if (obj != null  (obj.GetType() == typeof(String) || obj.GetType() == typeof(string)))
  {
  return obj.ToString();
  }

  IsoDateTimeConverter dt = new IsoDateTimeConverter();
  dt.DateTimeFormat = "yyyy'-'MM'-'dd'T'HH':'mm':'ss";
  return JsonConvert.SerializeObject(obj, dt);

 }

 /// summary> 
 /// 從一個Json串生成對象信息 
 /// /summary> 
 /// param name="jsonString">JSON字符串/param> 
 /// typeparam name="T">對象類型/typeparam>  
 /// returns>/returns> 
 public static T ToObjectT>(string json) where T : class
 {
  if (String.IsNullOrEmpty(json)) return null;
  T obj = JsonConvert.DeserializeObjectT>(json);
  return obj;
 }

 /// summary>
 /// 返回 Dictionstring,object>
 /// /summary>
 /// param name="json">/param>
 /// returns>/returns>
 public static Dictionarystring, object> ToObject(string json)
 {
  if (String.IsNullOrEmpty(json)) return new Dictionarystring, object>();
  return ToObjectDictionarystring, object>>(json);
 }

 /// summary>
 /// 返回 ListDictionarystring, object>>
 /// /summary>
 /// param name="json">/param>
 /// returns>/returns>
 public static ListDictionarystring, object>> ToList(string json)
 {
  if (String.IsNullOrEmpty(json)) return new ListDictionarystring, object>>();
  return ToObjectListDictionarystring, object>>>(json);
 }

 /// summary>
 /// 組裝對象
 /// /summary>
 /// param name="json">/param>
 /// param name="obj">/param>
 public static void PopulateObject(string json, object obj)
 {
  if (String.IsNullOrEmpty(json)) return;
  JsonConvert.PopulateObject(json, obj);
 }
 }
}

7、用于區分系統異常和業務異常的BusinessException:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization;

namespace formula
{
 /// summary>
 /// 業務異常
 /// /summary> 
 [Serializable]
 public class BuessinessException : Exception
 {
 /// summary>
 /// 系統異常構造函數
 /// /summary>
 public BuessinessException()
 {

 }

 /// summary>
 /// 系統異常構造函數
 /// /summary>
 /// param name="message">異常的消息/param>
 public BuessinessException(string message)
  : base(message)
 {

 }

 /// summary>
 /// 系統異常構造函數
 /// /summary>
 /// param name="message">異常的消息/param>
 /// param name="inner">內部的異常/param>
 public BuessinessException(string message, System.Exception inner)
  : base(message, inner)
 {

 }

 /// summary>
 /// 系統異常構造函數
 /// /summary>
 /// param name="info">存有有關所引發異常的序列化的對象數據/param>
 /// param name="context">包含有關源或目標的上下文信息/param>
 public BuessinessException(SerializationInfo info, StreamingContext context)
  : base(info, context)
 {

 }
 }
}

最后,上代碼:http://xiazai.jb51.net/201604/yuanma/ASP.NET-MVC-EasyUI-sampleFrame%28jb51.net%29.rar

您可能感興趣的文章:
  • asp.net mvc 從數據庫中讀取圖片的實現代碼
  • asp.net mvc4 mysql制作簡單分頁組件(部分視圖)
  • 使用jQuery向asp.net Mvc傳遞復雜json數據-ModelBinder篇
  • ASP.NET MVC DropDownList數據綁定及使用詳解
  • ASP.NET中MVC從后臺控制器傳遞數據到前臺視圖的方式
  • Asp.net mvc 數據調用示例代碼
  • ASP.NET MVC 數據驗證及相關內容
  • ASP.NET Mvc開發之刪除修改數據
  • ASP.NET中MVC傳遞數據的幾種形式總結
  • ASP.NET Mvc開發之查詢數據
  • JQuery對ASP.NET MVC數據進行更新刪除
  • asp.net實現的MVC跨數據庫多表聯合動態條件查詢功能示例
  • ASP.NET MVC使用EPPlus,導出數據到Excel中

標簽:汕頭 吉林 重慶 本溪 婁底 河南 麗江 宜春

巨人網絡通訊聲明:本文標題《利用ASP.NET MVC+EasyUI+SqlServer搭建企業開發框架》,本文關鍵詞  利用,ASP.NET,MVC+EasyUI+SqlServer,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《利用ASP.NET MVC+EasyUI+SqlServer搭建企業開發框架》相關的同類信息!
  • 本頁收集關于利用ASP.NET MVC+EasyUI+SqlServer搭建企業開發框架的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 广州包装机械有限公司| 杭州精密机械有限公司| 嘉善精密机械有限公司| 山西秋林机械有限公司| 上海国青机械有限公司| 常州市佳凯包装机械有限公司| 广州乾能机械制造有限公司| 上海爱德夏机械有限公司| 山东力强机械有限公司| 绍兴 机械有限公司| 江苏永康机械有限公司| 首钢长治钢铁有限公司地址| 无锡润和机械有限公司| 广州惠德机械有限公司| 重庆红江机械有限公司| 河南朝阳钢铁有限公司| 浙江环兴机械有限公司| 浙江美格机械有限公司| 浙江起重机有限公司| 万兹莱压缩机械(上海)有限公司| 东营石油机械有限公司| 上海春日机械工业有限公司| 航星洗涤机械(泰州)有限公司| 科瑞森机械有限公司| 贝纳特机械有限公司| 南京贝隆齐机械有限公司| 济南机械制造有限公司| 柳州工程机械有限公司| 深圳市宏机械设备有限公司| 上海市机械有限公司| 上海威士机械有限公司| 广东富华机械装备制造有限公司| 成都鑫泽机械有限公司| 卫华起重机有限公司| 溧阳申特钢铁有限公司| 广东美特机械有限公司| 武安市裕华钢铁有限公司| 郑州企鹅粮油机械有限公司| 浙江 动力机械有限公司| 威塑料机械有限公司| 牛力机械制造有限公司| 青岛新大成塑料机械有限公司| 浙江帅锋精密机械制造有限公司| 泰安嘉和重工机械有限公司| 江阴凯迈机械有限公司| 浙江国机械有限公司| 上海锐精密机械有限公司| 广东力源液压机械有限公司| 大连塑料机械有限公司| 武汉机械制造有限公司| 徐州挖掘机械有限公司| 上海昶旭包装机械有限公司| 新疆汇合钢铁有限公司| 山东博精化工机械有限公司| 重庆洲泽机械制造有限公司| 江苏特佳机械有限公司| 唐山燕山钢铁有限公司| 咸阳机械制造有限公司| 中船重工海空智能装备有限公司 | 张家港 机械有限公司| 上海捷如重工机电设备有限公司 | 徐州起重机械有限公司| 南京橡塑机械有限公司| 宁波华热机械制造有限公司| 昆山六丰机械工业有限公司 | 潍坊永成机械有限公司| 永明机械制造有限公司| 苏州动力机械有限公司| 东莞大兴发机械有限公司| 无锡沃利数控机械有限公司| 深圳市德润机械有限公司| 山东河山机械有限公司| 机械自动化设备有限公司| 天津起重设备有限公司| 北京食之秀机械设备有限公司| 北京京民兴机械设备有限公司 | 浙江美格机械有限公司| 中联恒通机械有限公司| 上海杰姆博机械设备有限公司| 山东逸通机械有限公司| 浙江九隆机械有限公司| 新世纪机械有限公司| 广州市机械设备有限公司| 济南迈动数控机械有限公司| 衡阳华意机械有限公司| 泰安市民乐机械制造有限公司 | 上海机械进出口有限公司| 武汉包装机械有限公司| 济南捷迈数控机械有限公司| 华泰重工制造有限公司| 力升机械有限公司.| 固精密机械有限公司| 大连吉利机械配件有限公司| 河南豫弘重型机械有限公司| 上海力克机械有限公司| 浙江塑料机械有限公司| 浙江亿森机械有限公司| 山东海诺机械有限公司| 郑州工程机械有限公司| 上海映易包装机械设备有限公司 | 宁波恒威机械有限公司| 青岛九合重工机械有限公司| 北京火车头机械设备有限公司 | 广州凯诺机械有限公司| 金格瑞机械有限公司| 烟台工程机械有限公司| 合肥机械设备有限公司| 上海华襄机械有限公司| 长沙力诺机械有限公司| 上海德采包装机械有限公司| 曼透平机械有限公司| 湖南湘船重工有限公司| 上海磊友成套机械设备有限公司| 上海拓稳机械有限公司| 鑫盛机械制造有限公司| 唐山文丰钢铁有限公司| 无锡开普机械有限公司| 威海威力起重有限公司| 上海小虎机械有限公司| 博兴县钢铁有限公司| 金华巨鑫机械有限公司| 新乡市东振机械制造有限公司| 无锡东晨机械有限公司| 宁波润达机械有限公司| 常州武进机械有限公司| 郑州市建新机械制造有限公司| 郑州市昌利机械制造有限公司| 常州市 机械设备有限公司| 林州中奥机械有限公司| 泰钢钢铁贸易有限公司| 圣博液压机械有限公司| 深圳市宏机械设备有限公司| 潍坊天宇机械有限公司| 上海机械装备有限公司| 普思信机械部件有限公司| 江苏机械设备有限公司| 上海新麦机械设备制造有限公司 | 苏州盛友机械有限公司| 安徽 机械制造有限公司| 浙江安驰机械有限公司| 陕西 机械有限公司| 张家口煤矿机械制造有限公司 | 青岛科尼乐机械设备有限公司 | 临沂美联重工有限公司| 上海传动机械有限公司| 东莞精密机械有限公司| 南京远景机械有限公司| 无锡伊诺特石化机械设备有限公司 | 南通力威机械有限公司| 诸城市美川机械有限公司| 山东机械铸造有限公司| 常州达德机械有限公司| 长沙威沃机械制造有限公司| 常州胜代机械有限公司| 江阴市博越机械有限公司| 山东冠华重工机械有限公司| 安徽威萨重工机械有限公司| 恒江机械制造有限公司| 东光包装机械有限公司| 江阴市勤业化工机械有限公司 | 鑫成机械设备有限公司| 太仓机械设备有限公司| 富利源机械有限公司| 南京竣业过程机械设备有限公司 | 东莞宏起塑胶电子有限公司| 山东巨力机械有限公司| 东莞市鑫国丰机械有限公司| 玉环机械制造有限公司| 山东伊莱特重工有限公司| 绍兴 机械 有限公司| 浙江乐江机械有限公司| 新乡市特昌振动机械有限公司| 安徽涌诚机械有限公司| 常州布勒机械有限公司| 山西中德科工机械制造有限公司| 厦门市机械有限公司| 许昌市机械有限公司| 北海船舶重工有限公司| 泰州市机械有限公司| 江西台鑫钢铁有限公司| 中原圣起起重机械有限公司| 河北迪森机械制造有限公司| 台林机械有限公司 -| 天津亨旺机械有限公司| 洛阳耿力机械有限公司| 河北宏川机械制造有限公司 | 东莞市森人机械有限公司| 江苏沃得农业机械有限公司| 建友机械设备有限公司| 无锡全盛安仁机械有限公司| 苏州苏鹰机械制造有限公司| 青岛诺恩包装机械有限公司| 山东天瑞重工有限公司| 深圳市丹耐斯机械有限公司| 阳煤化工机械有限公司| 广东马氏机械有限公司| 浙江雷克机械工业有限公司| 广州机械自动化有限公司| 河北宏发机械有限公司| 四川晶工机械有限公司| 上海舒平精工机械有限公司| 江门携成机械有限公司怎样| 上海轶鹰起重机械有限公司| 湖南省湘粮机械制造有限公司 | 济南 机械 有限公司| 乙盛机械工业有限公司| 瑞达机械设备有限公司| 天津华悦包装机械有限公司| 珠海华亚机械有限公司| 济南梓鑫机械有限公司| 无锡市康晖机械制造有限公司 | 比力特机械有限公司| 上海朗惠包装机械有限公司| 宁波力劲机械有限公司| 上海起鑫贸易有限公司| 广州甲宝机械有限公司| 贝奇尔机械有限公司| 大连龙尧塑料机械有限公司| 广东马氏机械有限公司| 沈阳黎明机械有限公司| 山东泰安机械有限公司| 陕西 机械有限公司怎么样| 贝力特机械有限公司| 江苏精明机械有限公司| 温州铸鼎机械有限公司| 华亿机械制造有限公司| 潍坊新成达机械有限公司| 临沂 机械有限公司| 上海松川远亿机械设备有限公司| 三川德青工程机械有限公司| 无锡包装机械有限公司| 上海 钢铁物资有限公司| 无锡锡科机械制造有限公司| 新乡高服筛分机械有限公司| 常州辉机械有限公司| 湛江市机械有限公司| 浙江金马逊机械有限公司| 江苏省南扬机械制造有限公司| 无锡祥靖机械有限公司| 太原通泽重工有限公司| 南京科倍隆机械有限公司| 中机北方机械有限公司| 北京洛克机械有限公司| 郑州 机械有限公司| 上海嘉峥机械有限公司| 山东莱芜煤矿机械有限公司| 丹阳荣嘉精密机械有限公司| 上海石油机械有限公司| 邯郸市机械有限公司| 美心翼申机械有限公司| 新疆起亚铝业有限公司招聘| 河北农哈哈机械有限公司| 上海辰品食品机械有限公司| 深圳市德润机械有限公司| 江阴中立机械工业有限公司| 广东粤凯机械有限公司| 盐城中热机械有限公司| 四川建筑机械有限公司| 南京 机械设备 有限公司| 福州 机械 有限公司| 韶瑞重工有限公司招聘| 东莞共荣精密机械有限公司| 济南东泰机械制造有限公司| 苏州乐嘉机械有限公司| 扬州禹笑水利机械有限公司| 广东仕诚塑料机械有限公司| 博阳机械制造有限公司| 深圳印刷机械深圳有限公司| 烟台飞达机械有限公司| 江苏双友重型机械有限公司| 玛顿重工太仓有限公司| 江苏甲钢钢铁有限公司| 河南隧通机械有限公司| 杭州速博雷尔传动机械有限公司| 无锡 钢铁贸易有限公司| 江苏苏东机械有限公司| 上海保成机械有限公司| 莱州弘宇机械有限公司| 柳州工程机械有限公司| 石嘴山钢铁有限公司| 三星重工业宁波有限公司招聘| 广东思沃精密机械有限公司| 昆山裕邦机械有限公司| 洛阳大华重型机械有限公司| 昆山 机械 有限公司| 山东建凌机械有限公司| 浙江人和机械有限公司| 泊头市环保机械有限公司| 柳州市机械有限公司| 上海阿泰瑞克重工有限公司| 徐州随车起重机有限公司| 鑫达机械制造有限公司| 浙江恒机械有限公司| 上海皆力机械设备有限公司| 台州万洲机械有限公司| 合肥华运机械制造有限公司| 延边鸿起实业有限公司| 江苏华雕机械有限公司| 浙江万能弹簧机械有限公司| 徐州世通重工机械制造有限公司| 山东云光钢铁有限公司| 柳州中源机械有限公司| 中信重工机器人有限公司| 郑州富民机械有限公司| 众旭食品机械有限公司| 四川机械设备有限公司| 诸城市华邦机械有限公司| 潍坊永成机械有限公司| 濮阳 机械有限公司| 扬州伏尔坎机械制造有限公司| 无锡胜麦机械有限公司| 济南工程机械有限公司| 上海大松机械有限公司| 安来动力机械有限公司| 山东鑫鑫机械有限公司| 欧亚德机械有限公司| 南京聚力化工机械有限公司| 临西中伟机械有限公司| 南通申通机械有限公司| 济南包装机械械有限公司| 阿特拉斯机械设备有限公司| 上海嘉峥机械有限公司| 宁波天竺工程机械有限公司| 上海精元机械有限公司| 河南启瀚机械设备有限公司| 浙江常至机械有限公司| 余姚市机械有限公司| 苏州市大华精密机械有限公司| 卓郎纺织机械有限公司| 宁波瑞基机械有限公司| 金龙机械制造有限公司| 东莞市鸿企机械有限公司| 河北德龙钢铁有限公司| 山东九环石油机械有限公司| 重庆机械制造有限公司| 常州高凯精密机械有限公司| 温州博宇机械有限公司| 湘东化工机械有限公司| 北京京西重工有限公司| 上海科劳机械设备有限公司| 晋江机械制造有限公司| 徐州凯工机械有限公司| 光大机械厂有限公司| 南通凯瑞德机械有限公司| 在天精密机械有限公司| 科尼乐机械设备有限公司| 山东锦鹏机械有限公司| 三国精密机械有限公司| 江苏华光双顺机械制造有限公司| 浙江五一机械有限公司| 上海西马特机械制造有限公司| 浙江 料机械有限公司| 首钢东华机械有限公司| 江苏苏东机械有限公司| 昆山江锦机械有限公司| 绍兴金昊机械制造有限公司| 在天精密机械有限公司| 南通赛孚机械设备有限公司| 无锡市丰玮机械设备有限公司 | 东莞宏彰机械有限公司| 洛阳友建工程机械有限公司| 宝钢湛江钢铁有限公司| 江苏瑞德机械有限公司| 无锡前洲兴华机械有限公司| 扬州 液压机械有限公司| 山西秋林机械有限公司| 济南龙铸液压机械有限公司| 江阴市机械设备有限公司| 浙江九隆机械有限公司| 唐山安丰钢铁有限公司| 大连吉利机械配件有限公司| 烟台天成机械有限公司| 丽驰精密机械有限公司| 新乡市西贝机械有限公司| 大连 工程机械有限公司| 天津亨旺机械有限公司| 江苏博森机械制造有限公司| 杭州 机械有限公司| 广东先达数控机械有限公司| 沧州铁狮磨浆机械有限公司 | 山西中阳钢铁有限公司| 艾瑞精密机械有限公司| 广州工友起重设备制造有限公司| 苏州包装机械有限公司| 上海机械设备有限公司| 群韵饮料机械有限公司| 常州市新武机械有限公司| 长春协展机械工业有限公司| 招远市矿山机械有限公司| 浙江博创机械有限公司| 河北裕华钢铁有限公司| 广州领新机械实业有限公司| 惟其信石油机械(天津)有限公司| 浙江海天机械有限公司| 滁州富达机械电子有限公司| 莱州行星机械有限公司| 昆山烽禾升精密机械有限公司| 山东临工工程机械有限公司招聘| 南京润森工程机械有限公司| 天工机械制造有限公司| 长沙三一重工有限公司| 如东宏信机械制造有限公司| 青岛大牧人机械有限公司| 韶瑞重工有限公司官网| 东莞市实诚机械有限公司| 襄阳亚舟重型工程机械有限公司| 烟台 机械有限公司| 博阳机械制造有限公司| 山东亚泰机械有限公司| 上海航发机械有限公司| 无锡大昌机械工业有限公司| 银锐玻璃机械有限公司| 绍兴三纺机械有限公司| 上海涵延机械有限公司| 老挝第一钢铁有限公司| 山东力强机械有限公司| 广州金本机械设备有限公司| 大方起重机器有限公司| 上海 机械制造有限公司| 浙江 料机械有限公司| 宁波博大机械有限公司| 浙江志高机械有限公司| 上海敏硕机械配件有限公司| 天津金岸重工有限公司| 上海春日机械工业有限公司| 上海起重运输机械厂有限公司 | 江苏青山机械有限公司| 广州永晋机械有限公司| 杭州丽伟电脑机械有限公司| 永宏机械制造有限公司| 济南华工液压机械有限公司| 广东思沃精密机械有限公司| 河南红星矿山机械有限公司| 苏州久富农业机械有限公司| 江苏机械设备制造有限公司| 宝钢湛江钢铁有限公司| 温州印刷机械有限公司| 奉化市机械有限公司| 吴江精密机械有限公司| 安徽玻璃机械有限公司| 北京恒机械有限公司| 长葛市机械有限公司| 机械(苏州)有限公司| 三门峡宏基机械有限公司 | 江阴荣兴机械有限公司| 苏州海盛精密机械有限公司怎么样| 安徽宏远机械制造有限公司| 湖南 机械有限公司| 河北政博机械制造有限公司 | 山东山特重工机械有限公司| 浙江大源机械有限公司| 三鑫重工机械有限公司| 恒江机械制造有限公司| 上海宇意机械有限公司| 常州泽威输送机械有限公司| 玉环博行机械有限公司| 荣嘉精密机械有限公司| 扬州金威机械有限公司| 英隆机械昆山有限公司| 金韦尔机械有限公司| 诚鑫诚机械有限公司| 机械有限公司 招聘| 装饰工程有限公司起名| 江苏红日钢铁有限公司| 人和弹簧机械有限公司| 青岛海佳机械有限公司| 德州液压机械有限公司| 深圳液压机械有限公司| 上海容安木工机械设备有限公司| 上海德珂斯机械自动化技术有限公司| 圣博液压机械有限公司| 宁波钢铁有限公司地址| 庆中机械制造有限公司| 台州市鲨鱼食品机械有限公司| 石家庄博锐食品机械有限公司| 杭州宏展机械有限公司| 浙江乐江机械有限公司| 张家港市家源机械有限公司| 常州东进机械有限公司| 常州市永明机械制造有限公司| 临沂美联重工有限公司| 威海柳道机械有限公司| 比富机械(东莞)有限公司| 湖南天拓重工有限公司| 杭州莱顿机械有限公司| 新乡市振英机械设备有限公司| 潍坊重工机械有限公司| 石家庄三一众力工程机械有限公司| 宇进注塑机械有限公司| 宁波将军机械有限公司| 合肥中辰轻工机械有限公司| 佰源机械有限公司欠款| 苏州仁成包装机械有限公司| 常州海杰冶金机械制造有限公司| 钢铁国际贸易有限公司| 重庆春仁机械有限公司| 浙江欧耀机械有限公司| 杭州三普机械有限公司| 珠海机械设备有限公司| 江苏迈安德食品机械有限公司| 无锡新麦机械有限公司| 广州市机械制造有限公司| 福建盛达机械有限公司| 江苏迪迈机械有限公司| 元机械制造有限公司| 上海唐迪机械制造有限公司| 浙江四和机械有限公司| 厦门工程机械有限公司| 常州常林机械有限公司| 浙江瑞志机械有限公司| 诸城市宏宇轻机机械有限公司 | 标准缝纫机菀坪机械有限公司 | 南京贝隆齐机械有限公司| 厦门洪海机械有限公司| 保定 机械有限公司| 天山重工机械有限公司| 宁波传动机械有限公司| 东莞丰堡精密机械有限公司| 上海远跃制药机械有限公司| 上海冬松精密机械有限公司| 广州博创机械有限公司| 无锡市机械有限公司| 新乡天丰机械有限公司| 昆明 机械制造 有限公司| 安丰钢铁有限公司电话| 浙江建设机械有限公司| 常熟通江机械有限公司| 三联传动机械有限公司| 昆山弘迪精密机械有限公司| 浙江宇丰机械有限公司| 昆成机械制造有限公司| 杭州机械制造有限公司| 武汉四方圆机械设备有限公司 | 通达塑料机械有限公司| 沈阳精密机械有限公司| 唐山榕丰钢铁有限公司| 无锡械锐机械有限公司| 大阳通用机械有限公司| 张家港 机械设备有限公司| 河北强华水利机械有限公司| 广东省重工建筑设计院有限公司 | 沧州重诺机械制造有限公司| 上海起泽起重机械有限公司| 鸿达机械制造有限公司| 东莞市力华机械设备有限公司| 攀枝花钢铁有限公司| 江阴市祥达机械制造有限公司| 汉威机械制造有限公司| 青岛吉瑞特机械制造有限公司| 青岛美嘉隆包装机械有限公司| 佰源机械有限公司欠款| 兴业机械设备有限公司| 上海岭申机械有限公司| 浙江欣炜机械有限公司| 江苏昆仑钢铁有限公司| 深圳市塑胶机械有限公司| 常州达德机械有限公司| 江苏国天锻压机械有限公司| 青岛春风机械有限公司| 洛阳中收机械装备有限公司招聘| 上海三久机械有限公司| 爱可机械深圳有限公司| 伟业机械制造有限公司| 江苏瑞德机械有限公司| 济南新思路机械设备有限公司| 洛阳路通重工机械有限公司| 德龙钢铁有限公司招聘| 晋江市机械有限公司| 上海舜锋机械制造有限公司| 济南金迈达机械有限公司| 自贡机械制造有限公司| 浙江齐鲤机械有限公司| 淄博推进化工机械有限公司 | 湖南申德钢铁有限公司| 鞍山宝得钢铁有限公司招聘岗位 | 金鹰重型工程机械有限公司 | 长春机械设备有限公司| 郑州天龙机械有限公司| 常熟通江机械有限公司| 上海隆麦机械有限公司| 山东 纺织机械 有限公司| 成都艾威机械有限公司| 济南欧亚德数控机械有限公司| 招远矿山机械有限公司| 淮安液压机械有限公司| 无锡全盛安仁机械有限公司| 富华重工有限公司老板| 青岛洪珠农业机械有限公司| 欧克机械制造有限公司| 杭州凯邦机械有限公司| 广汉市蜀汉粮油机械有限公司| 泰安机械有限公司招聘| 广州市磊蒙机械设备有限公司| 青岛青宏机械制造有限公司| 西安中天机械有限公司| 江门市科杰机械自动化有限公司 | 西帕机械杭州有限公司| 成都兴业邦达重工机械有限公司 | 晶元精密机械有限公司| 机械化工程有限公司| 湖南省湘粮机械制造有限公司| 苏州德派机械有限公司| 鼎工机械制造有限公司| 北京大铭世进机械设备有限公司| 吴江机械设备有限公司| 宁波星峰机械有限公司| 苏州安特精密机械有限公司| 邯郸市复液液压机械有限公司| 湖北天腾重型机械制造有限公司| 张家港市家源机械有限公司| 戴氏印刷机械有限公司| 唐山宝泰钢铁有限公司| 江西四通重工机械有限公司| 济南金梭机械制造有限公司 | 宜兴市机械有限公司| 江苏迪鼎机械有限公司| 浩胜食品机械有限公司| 浙江宏华机械塑胶有限公司| 山东川普机械有限公司| 锦辉五金机械有限公司| 邢工机械制造有限公司| 无锡市机械制造有限公司| 山东机械铸造有限公司| 常州宝菱重工机械有限公司| 上海达辉机械有限公司| 湖北仙粮机械有限公司| 丝网机械设备有限公司| 合肥中通抛光机械有限公司 | 重庆机械设备有限公司| 无锡锡昌机械有限公司| 嘉善精密机械有限公司| 鑫华机械制造有限公司| 浙江易锋机械有限公司| 舞钢中加钢铁有限公司| 深圳市机械设备有限公司| 宁波正凯机械有限公司| 曲阜圣泰机械有限公司| 东莞太星机械有限公司| 上海诚淘机械有限公司| 浙江美格机械有限公司| 青岛广德机械有限公司| 成都神钢建设机械有限公司| 上海陵城机械有限公司| 鸿达机械制造有限公司| 玉环方博机械有限公司| 江苏船谷重工有限公司| 南京凯驰机械有限公司| 南通腾中机械有限公司| 江苏威鹰机械有限公司| 宁波将军机械有限公司| 江山重工机械有限公司| 青岛南牧机械设备有限公司| 广州盛广誉机械设备有限公司| 苏州松博机械有限公司| 日照港达船舶重工有限公司| 山东讴神机械制造有限公司| 上海松铭传动机械有限公司| 天津市液压机械有限公司| 深圳包装机械有限公司| 德实机械平湖有限公司| 东莞兆泰机械设备有限公司| 上海剑豪传动机械有限公司| 深圳格瑞克机械有限公司| 江西鑫通机械有限公司| 上海善能机械有限公司| 上海豪德机械有限公司| 上海升立机械制造有限公司| 山东纺织机械有限公司| 杭州传动机械有限公司| 江苏医疗机械有限公司| 合肥大洋机械制造有限公司| 汽车销售有限公司起名| 台州市四海机械有限公司| 广西清隆机械制造有限公司| 定州宏远机械有限公司| 天津机械设备有限公司| 天津润机械有限公司| 连云港 机械有限公司| 湖南中旺工程机械设备有限公司| 起航中文小说有限公司| 东莞大同机械有限公司| 杭州重型机械有限公司| 常州天山重工机械有限公司| 东莞%机械制造有限公司| 温州中环机械设备有限公司| 济南天助升降机械有限公司| 青岛泰新机械有限公司| 昆明旭邦机械有限公司| 山东山建机械有限公司| 江阴市礼联机械有限公司| 宁波钛龙机械有限公司| 油机机械工业有限公司| 浙江海蜜机械有限公司| 台湾精密机械有限公司| 山东川大机械设备有限公司| 青岛高通机械有限公司| 河北鑫达钢铁有限公司| 广州机械自动化有限公司| 宁波固奇包装机械制造有限公司| 广州市德晟机械有限公司 | 汉中燕航精工机械有限公司| 宁波美宁机械有限公司| 河北安丰钢铁有限公司| 杭州西子重工有限公司| 杭州凯邦机械有限公司| 无锡机械设备有限公司| 绵阳机械制造有限公司| 广东重工建设监理有限公司怎么样 | 贵州红林机械有限公司| 金瑞机械制造有限公司| 食品有限公司起名大全| 浙江杰豹机械有限公司| 广东明华机械有限公司| 济南腾越机械制造有限公司| 德州仁信印染机械有限公司| 洛阳中收机械装备有限公司| 泉州机械设备有限公司| 青岛鲁耕农业机械有限公司| 浙江卓驰机械有限公司| 镇江宏泰钢铁有限公司| 上海山卓重工机械有限公司| 河北洲际重工有限公司| 东莞兆泰机械设备有限公司| 湖北天和机械有限公司| 珠海机械设备有限公司| 佛山新元机械有限公司| 杭州同创顶立机械有限公司| 上海戈扬包装机械有限公司 | 温州正信机械有限公司| 重庆泰诺机械有限公司| 上海 精密机械制造有限公司| 合肥成龙钢铁有限公司| 无锡力马化工机械有限公司| 苏州恩贝德机械有限公司| 昆山胜代机械有限公司| 上海宝闽钢铁有限公司| 宁波佳诚机械有限公司| 沈阳工程机械有限公司| 陆丰机械郑州有限公司| 华鑫机械制造有限公司| 上海牛力机械有限公司| 江苏冠宇机械设备制造有限公司| 长沙宏银机械有限公司| 昆山之富士机械制造有限公司 | 苏州阿姆斯壮阀门机械有限公司| 江苏古川机械有限公司| 大连正丰机械有限公司| 南通凯瑞德机械有限公司| 苏州市机械制造有限公司| 山东祥远机械有限公司| 首唐宝生钢铁有限公司| 江苏源德机械有限公司| 浙江风驰机械有限公司| 杭州正驰达精密机械有限公司 | 佛山市奥索包装机械有限公司 | 兖矿东华重工有限公司| 济南启正机械工业有限公司| 江苏合丰机械制造有限公司| 湖南一田农业机械有限公司| 上海丰禾精密机械有限公司 | 广东恒联食品机械有限公司售后| 济南明美机械有限公司| 重庆起重机厂有限公司| 中材重型机械有限公司| 上海科熙起重设备有限公司| 郑州华隆机械制造有限公司| 合肥中达机械制造有限公司| 远大机械制造有限公司| 东泰盛机械有限公司| 石家庄米兹机械设备有限公司 | 河北昭达机械有限公司| 山西 机械有限公司| 武安市文安钢铁有限公司| 英国敬业钢铁有限公司| 广东机械制造有限公司| 万兹莱压缩机械(上海)有限公司 | 创达机械制造有限公司| 武汉精密机械有限公司| 上海全驰机械有限公司| 鞍山宝得钢铁有限公司招聘岗位 | 山东源鑫农牧机械有限公司| 晋城福盛钢铁有限公司| 沈阳小松工程机械有限公司| 星精密机械有限公司| 沧州怡和机械有限公司| 北京雄伟京发机械加工有限公司| 徐工工程机械有限公司| 信息技术有限公司起名| 上海鑫越包装机械有限公司| 东莞市源机械有限公司| 上海紫光机械有限公司| 新乡市辰威机械有限公司 | 青岛美嘉隆包装机械有限公司| 大连日立机械设备有限公司| 国发重工机械有限公司| 新乡市矿山起重机械有限公司 | 中山凌宇机械有限公司| 河南 机械设备有限公司| 宁夏瑞光机械有限公司| 苏州仁成包装机械有限公司| 泰田液压机械有限公司| 东莞市博志达工程机械制造有限公司| 广东锐亚机械有限公司| 青岛日川精密机械有限公司| 动力机械制造有限公司| 温州锐光机械有限公司| 广西徐重机械有限公司| 瑞安市机械有限公司| 青岛德盛机械制造有限公司| 兰州兰石重工有限公司| 成都刚毅机械制造有限公司| 群鑫机械有限公司电话| 苏州凯尔博精密机械有限公司| 福宁船舶重工有限公司| 南京腾阳机械有限公司| 武汉船舶重工有限公司| 山东液压机械有限公司| 上海鼎龙机械有限公司| 东莞市天成机械有限公司| 东莞市和明机械有限公司| 北京京民兴机械设备有限公司| 宜昌 机械设备有限公司| 青岛浩翔机械有限公司| 银丰弹簧机械设备制造有限公司| 东莞市从创机械有限公司| 徐州机械设备有限公司| 蚌埠神舟机械有限公司| 万杰食品机械有限公司| 上海志程机械设备有限公司 | 上海达辉机械有限公司| 厦门华峰辊压机械有限公司| 新乡市法斯特机械有限公司| 佛山市顺德区金工铝门窗机械实业有限公司| 南京机械设备制造有限公司| 广东正力精密机械有限公司| 徐州东亚钢铁有限公司| 嘉兴扬鑫机械有限公司| 苏州仁成包装机械有限公司| 上海万铂起重机械有限公司| 天津市三鼎包装机械有限公司| 上海市机械有限公司| 上海松川远亿机械设备有限公司 | 阳春新钢铁有限公司| 厦门大禾众邦机械有限公司| 昆山裕邦机械有限公司| 西马特机械制造有限公司| 上海鼎亚精密机械设备有限公司| 上海宏挺机械设备制造有限公司| 世翔精密机械制造有限公司| 河南工程机械有限公司| 江苏食品机械有限公司| 江阴钢铁贸易有限公司| 吉林大华机械制造有限公司| 山东重特机械有限公司| 上海宝峨机械有限公司| 佳先机械制造有限公司| 扬州金威机械有限公司| 太仓鸿安机械有限公司| 天宇机械制造有限公司| 东莞高恩机械有限公司| 高义钢铁有限公司电话| 厦门众达钢铁有限公司| 开封茂盛机械有限公司| 江阴长达钢铁有限公司| 浙江正润机械有限公司| 常州胜代机械有限公司| 上海光塑机械制造有限公司 | 济柴聊城机械有限公司| 浙江云广机械制造有限公司 | 昆山之富士机械制造有限公司| 泰安重工机械有限公司| 天盛机械制造有限公司| 上海起帆电缆有限公司| 张家港机械有限公司| 浙江胜祥机械有限公司| 无锡精派机械有限公司| 江西鑫通机械制造有限公司| 河北敬业钢铁有限公司| 东莞木工机械有限公司| 南昌机械设备有限公司| 连云港机械有限公司| 合肥华运机械有限公司| 上海贝得尔石化机械设备有限公司| 烟台市利达木工机械有限公司| 济南迅捷机械设备有限公司| 徐州川一工程机械有限公司| 上海红重机械装备有限公司| 高臻机械机械有限公司| 山东瑞泽重工有限公司| 湖南汇杰机械设备有限公司| 山东莱芜煤矿机械有限公司| 济南食品机械有限公司| 巩义市人和机械有限公司| 上海皆力机械设备有限公司| 上海鼎亚精密机械设备有限公司| 河南永威起重机有限公司| 常州龙鹏机械有限公司| 江阴科盛机械有限公司| 上海众和包装机械有限公司| 重庆江增船舶重工有限公司| 山东业机械有限公司| 华力重工机械有限公司| 杭州西子重工有限公司| 常州市昊博机械有限公司| 河北宏业机械有限公司| 东莞市台钢机械设备有限公司 | 朝阳宏达机械有限公司| 智能机械设备有限公司| 浙江 动力机械有限公司| 沈阳凯力拓机械设备有限公司 | 无锡塑机械有限公司| 重庆旺田机械有限公司| 山东机械制造有限公司| 安印刷机械有限公司| 上海台新食品机械有限公司| 天烨机械工程有限公司| 武汉萱裕机械有限公司| 上海远跃制药机械有限公司 | 爱克苏州机械有限公司| 西安机械制造有限公司| 浙江麒龙起重机械有限公司 | 大连胜龙包装机械有限公司| 温州国伟印刷机械有限公司| 大唐机械制造有限公司| 昆明 机械制造 有限公司| 昆山协扬机械有限公司| 太行机械工业有限公司| 宁波佳尔灵气动机械有限公司 | 河南华北起重吊钩有限公司| 青岛北船重工有限公司| 东莞液压机械有限公司| 青州市国发包装机械有限公司| 山东龙起重工有限公司| 浙江乐江机械有限公司| 芜湖电工机械有限公司| 合肥食品机械有限公司| 天津英德诺机械设备有限公司| 郑州双合机械有限公司| 江阴凯迈机械有限公司| 江阴市永昌药化机械有限公司| 诸城市万兴机械有限公司| 南京利德盛机械有限公司| 坎山机械有限公司招聘| 东莞市天成机械有限公司| 招远市矿山机械有限公司| 济宁新田工程机械有限公司| 穗华机械设备有限公司| 机械设备出口有限公司| 椿中岛机械有限公司| 河南龙昌机械制造有限公司| 力迈机械设备有限公司| 德州宝鼎液压机械有限公司| 长春机械设备有限公司| 深圳龙润彩印机械设备有限公司| 郑州矿山机械有限公司| 邢台 机械有限公司| 太仓健柏机械有限公司| 天津重型机械有限公司| 衢州巨鑫机械有限公司| 上海涟恒精密机械有限公司 | 机械设备租赁有限公司| 无锡通用起重运输机械有限公司| 济南盛润机械有限公司| 漳州 机械有限公司| 长沙旭众机械设备有限公司 | 河南康迪机械有限公司| 温州科瑞机械有限公司| 机械化工工程有限公司| 南通友德机械有限公司| 宁波精密机械有限公司| 山东领品机械有限公司| 上海承企机械有限公司| 青岛现代机械有限公司| 宿迁市机械有限公司| 南宁敏创机械有限公司| 宁波鑫淼机械有限公司| 苏州联佳精密机械有限公司 | 安徽省中冶重工机械有限公司 | 湖南威士重工机械有限公司| 玉环方博机械有限公司| 压机械制造有限公司| 宁波博纳机械有限公司| 新乡市中轻机械有限公司| 东莞豪力机械有限公司| 上海安展机械设备有限公司| 广州惠德机械有限公司| 昆山乙盛机械工业有限公司电话 | 泰安煤矿机械有限公司| 好利用机械有限公司| 杭州中亚机械有限公司| 重庆培柴机械制造有限公司| 友池精密机械有限公司| 新乡市中天机械有限公司 | 诸城市华钢机械有限公司| 常州武进机械有限公司| 苏州洁宝机械有限公司| 广州机械有限公司招聘| 浙江君鸿机械有限公司| 阳煤化机械有限公司|