@using ZoomLa.BLL @using System.Text @using Newtonsoft.Json @using Newtonsoft.Json.Linq @using ZoomLa.Common @using System.Text.RegularExpressions @using ZoomLa.BLL.Content @model ZoomLaCMS.Models.Field.VM_FieldModel @functions{ public string GetMap() { FieldModel model = new FieldModel(Model.fieldMod.Content); StringBuilder builder = new StringBuilder(); string Name = Model.fieldMod.FieldName; string val = Model.GetValue(); switch (model.GetValue("source")) { case "baidu": #region 百度地图 { //预览 string viewurl = "/Common/BaiduMapView?Field=" + Name + "&ispre=1&Type=" + model.GetValue("type"); string preViewMap = ""; switch (model.GetValue("type")) { case "full"://完全版 val = GetFulVal(val); builder.Append("
"); builder.Append("
" + string.Format(preViewMap, viewurl) + "
"); break; case "simp"://简单版 default: val = GetSimpVal(val); builder.Append("
"); builder.Append("
" + string.Format(preViewMap, viewurl + "&Point=" + val) + "
"); break; } } #endregion break; case "google": #region Google地图 builder.Append(""); try { builder.Append(""); builder.Append(""); builder.Append(""); builder.Append(""); } catch { builder.Append(""); } break; #endregion default: break; } return builder.ToString(); } } @{ string id = "txt_" + Model.fieldMod.FieldName; //每个必须支持两种模式:PreView和编辑模式 } @functions{ private string GetFulVal(string val) { if (string.IsNullOrEmpty(val)) { return val; } //复杂类型但保存着简单格式 if (!val.StartsWith("[")) { string[] point = val.Split(','); return "[{\"mark\":{\"lng\":" + point[0] + ",\"lat\":" + point[1] + "},\"content\":\"\",\"icon\":\"/Common/Label/Map/Img/f1.png\"}]"; } return val; } private string GetSimpVal(string val) { if (!val.StartsWith("[")) { return val; } //简单类型,但保存着复杂字段 string res = val; JArray jarr = JsonConvert.DeserializeObject(res); if (jarr.Count > 0) { JObject point = (JObject)jarr[0]["mark"]; res = point["lng"] + "," + point["lat"]; return res; } return val; } } @MvcHtmlString.Create(GetMap())