public virtual ActionResult CoreView()
        {
            try
            {
                string ID           = Request.Query["ID"];
                string tmplCode     = Request.Query["tmplCode"];
                string IsPreView    = Request.Query["IsPreView"];
                string UpperVersion = Request.Query["UpperVersion"];

                //前台用的判断数据
                ViewBag.tmplCode     = tmplCode;
                ViewBag.IsPreView    = IsPreView;
                ViewBag.IsPreView    = IsPreView;
                ViewBag.UpperVersion = UpperVersion;
                ViewBag.FlowCode     = Request.Query["FlowCode"];
                ViewBag.TaskExecID   = Request.Query["TaskExecID"];

                //TODO  流程升版
                UIBuilder        uiFO    = new UIBuilder();
                string           sql     = "SELECT  * FROM S_UI_Form WITH(NOLOCK) ";
                List <S_UI_Form> uiLists = SQLHelper.CreateSqlHelper().ExecuteList <S_UI_Form>(sql).Where(c => c.Code == tmplCode).ToList();
                S_UI_Form        formDef = uiLists.FirstOrDefault();

                bool      isNew      = false;
                DataTable formDataDT = null;
                if (IsPreView == "True")
                {
                    formDataDT = new DataTable();
                    var row = formDataDT.NewRow();
                    formDataDT.Rows.Add(row);
                }
                else
                {
                    if (string.IsNullOrEmpty(UpperVersion))
                    {
                        sql = string.Format("select count(ID) from {0} where ID='{1}'", formDef.TableName, ID);
                        SQLHelper sqlHelper = SQLHelper.CreateSqlHelper(formDef.ConnName);
                        var       count     = Convert.ToInt32(sqlHelper.ExecuteScalar(sql));
                        if (count == 0)
                        {
                            isNew = true;
                        }
                        formDataDT = GetModelDT(formDef, ID);
                    }
                    else
                    {
                        isNew      = true;
                        formDataDT = GetModelDT(formDef, UpperVersion, true);
                        formDataDT.Rows[0]["ID"]            = GuidHelper.CreateGuid();
                        formDataDT.Rows[0]["FlowPhase"]     = "";
                        formDataDT.Rows[0]["VersionNumber"] = "";
                    }
                    //TODO Import AfterGetData(formDataDT, isNew, UpperVersion);
                }
                ViewBag.FormData = JsonHelper.ToJson(formDataDT).Trim('[', ']');
                var fieldInfo = JsonHelper.ToJson(uiFO.GetFieldInfo(formDef));
                if (fieldInfo == "[]" || fieldInfo == "")
                {
                    ViewBag.FieldInfo = "{}";
                }
                else
                {
                    ViewBag.FieldInfo = fieldInfo.Trim('[', ']');
                }

                ViewBag.FormHtml   = uiFO.CreateFormHtml(formDef);
                ViewBag.HiddenHtml = uiFO.CreateFormHiddenHtml(formDef);
                //此处允许开发者在自定义的controller中增加自己需要的脚本,同平台的脚本一起绘制在PageView中
                if (ViewBag.Script != null && !String.IsNullOrEmpty(ViewBag.Script))
                {
                    ViewBag.Script += "\n " + uiFO.CreateFormScript(formDef);
                }
                else
                {
                    ViewBag.Script = uiFO.CreateFormScript(formDef);
                }

                #region 子表大数据时,需要配置表单虚滚动加载
                var items = JsonHelper.ToObject <List <FormItem> >(formDef.Items);
                ViewBag.VirtualScroll = false.ToString().ToLower();
                var subTableList = items.Where(c => c.ItemType == "SubTable").ToList();
                foreach (var subTableItem in subTableList)
                {
                    if (String.IsNullOrEmpty(subTableItem.Settings))
                    {
                        continue;
                    }
                    var dic = JsonHelper.ToObject(subTableItem.Settings);
                    var dicSubTableSettings = JsonHelper.ToObject(dic["formData"].ToString());
                    if (dicSubTableSettings.GetValue("IsVirtualScroll") == "true")
                    {
                        ViewBag.VirtualScroll = true.ToString().ToLower();
                        break;
                    }
                }
                #endregion

                if (ViewBag.DataSource == null)
                {
                    var defaultValueRows = uiFO.GetDefaultValueDic(formDef.DefaultValueSettings);

                    #region 数据源到前台
                    StringBuilder sb = new StringBuilder();
                    foreach (var key in defaultValueRows.Keys)
                    {
                        var guid = new Guid();
                        if (Guid.TryParse(key, out guid) == false)
                        {
                            sb.AppendFormat("\n var {0}={1}", key, JsonHelper.ToJson(defaultValueRows[key]));
                        }
                    }
                    ViewBag.DataSource = sb.ToString();
                    #endregion
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            return(View());
        }