瀏覽代碼

IE Ajax-Caching deaktiviert und kleinere Bugs behoben.

Arne Diekmann 8 年之前
父節點
當前提交
b790f75f35
共有 23 個文件被更改,包括 285 次插入8 次删除
  1. 6 2
      GreenTree.Nachtragsmanagement.Services/Configuration/ConfigurationHelper.cs
  2. 17 0
      GreenTree.Nachtragsmanagement.Services/Configuration/ConfigurationService.cs
  3. 127 0
      GreenTree.Nachtragsmanagement.Services/Configuration/StatusConfigurationReference.cs
  4. 1 0
      GreenTree.Nachtragsmanagement.Services/GreenTree.Nachtragsmanagement.Services.csproj
  5. 1 0
      GreenTree.Nachtragsmanagement.Web/App_Data/InstalledPlugins.txt
  6. 18 0
      GreenTree.Nachtragsmanagement.Web/Controllers/SiteController.cs
  7. 26 0
      GreenTree.Nachtragsmanagement.Web/Extensions/GridViewSettingsHelper.cs
  8. 6 1
      GreenTree.Nachtragsmanagement.Web/Models/Deviation/DeviationDataModel.cs
  9. 7 0
      GreenTree.Nachtragsmanagement.Web/Models/Site/SiteDataModel.cs
  10. 1 1
      GreenTree.Nachtragsmanagement.Web/Models/Site/SiteTreeDataModel.cs
  11. 3 0
      GreenTree.Nachtragsmanagement.Web/Views/Admin/Plugins/View.cshtml
  12. 3 0
      GreenTree.Nachtragsmanagement.Web/Views/Admin/Roles/View.cshtml
  13. 3 0
      GreenTree.Nachtragsmanagement.Web/Views/Admin/Users/View.cshtml
  14. 6 1
      GreenTree.Nachtragsmanagement.Web/Views/Appendices/Claims.cshtml
  15. 3 0
      GreenTree.Nachtragsmanagement.Web/Views/Appendices/View.cshtml
  16. 3 0
      GreenTree.Nachtragsmanagement.Web/Views/Config/View.cshtml
  17. 6 1
      GreenTree.Nachtragsmanagement.Web/Views/Deviations/Claims.cshtml
  18. 3 0
      GreenTree.Nachtragsmanagement.Web/Views/Deviations/View.cshtml
  19. 33 2
      GreenTree.Nachtragsmanagement.Web/Views/Home/Index.cshtml
  20. 3 0
      GreenTree.Nachtragsmanagement.Web/Views/Misc/HelpPages.cshtml
  21. 3 0
      GreenTree.Nachtragsmanagement.Web/Views/Misc/Logs.cshtml
  22. 3 0
      GreenTree.Nachtragsmanagement.Web/Views/Misc/MailNotifications.cshtml
  23. 3 0
      GreenTree.Nachtragsmanagement.Web/Views/Sites/_SiteEditPartial.cshtml

+ 6 - 2
GreenTree.Nachtragsmanagement.Services/Configuration/ConfigurationHelper.cs

@@ -13,10 +13,12 @@ namespace GreenTree.Nachtragsmanagement.Services.Configuration
         public static Dictionary<string, IConfigurationReference> GetAllConfigurationReferences()
         {
             var stateConfigurationReference = new StateConfigurationReference();
+            var statusConfigurationReference = new StatusConfigurationReference();
 
             return new Dictionary<string, IConfigurationReference>()
             {
-                { stateConfigurationReference.Name, stateConfigurationReference }
+                { stateConfigurationReference.Name, stateConfigurationReference },
+                { statusConfigurationReference.Name, statusConfigurationReference }
             };
         }
 
@@ -26,10 +28,12 @@ namespace GreenTree.Nachtragsmanagement.Services.Configuration
         public static Dictionary<string, string> GetAllConfigurationReferencesDisplayList()
         {
             var stateConfigurationReference = new StateConfigurationReference();
+            var statusConfigurationReference = new StatusConfigurationReference();
 
             return new Dictionary<string, string>()
             {
-                { stateConfigurationReference.Name, stateConfigurationReference.DisplayName }
+                { stateConfigurationReference.Name, stateConfigurationReference.DisplayName },
+                { statusConfigurationReference.Name, statusConfigurationReference.DisplayName }
             };
         }
 

+ 17 - 0
GreenTree.Nachtragsmanagement.Services/Configuration/ConfigurationService.cs

@@ -18,6 +18,8 @@ namespace GreenTree.Nachtragsmanagement.Services.Configuration
         private readonly IRepository<ConfigItem> _configItemRepository;
         private readonly IRepository<UserConfigItem> _userConfigItemRepository;
 
+        private readonly Dictionary<string, ConfigItem> _configCache = new Dictionary<string, ConfigItem>();
+
         #endregion
 
         #region Ctor
@@ -93,6 +95,9 @@ namespace GreenTree.Nachtragsmanagement.Services.Configuration
         public void InsertConfigItem(ConfigItem configItem)
         {
             _configItemRepository.Insert(configItem);
+
+            if (_configCache.ContainsKey(configItem.Name))
+                _configCache[configItem.Name] = configItem;
         }
 
         /// <summary>
@@ -102,6 +107,9 @@ namespace GreenTree.Nachtragsmanagement.Services.Configuration
         public void UpdateConfigItem(ConfigItem configItem)
         {
             _configItemRepository.Update(configItem);
+
+            if (_configCache.ContainsKey(configItem.Name))
+                _configCache[configItem.Name] = configItem;
         }
 
         /// <summary>
@@ -111,6 +119,9 @@ namespace GreenTree.Nachtragsmanagement.Services.Configuration
         public void DeleteConfigItem(ConfigItem configItem)
         {
             _configItemRepository.Delete(configItem);
+
+            if (_configCache.ContainsKey(configItem.Name))
+                _configCache.Remove(configItem.Name);
         }
 
         #endregion
@@ -231,6 +242,9 @@ namespace GreenTree.Nachtragsmanagement.Services.Configuration
 
             object result = null;
 
+            if (!_configCache.ContainsKey(configItem.Name))
+                _configCache.Add(configItem.Name, configItem);
+
             try
             {
                 if (configItem.TypeFullName.StartsWith("ConfigurationReference"))
@@ -273,6 +287,9 @@ namespace GreenTree.Nachtragsmanagement.Services.Configuration
             if (String.IsNullOrEmpty(configItemName))
                 return defaultValue;
 
+            if (_configCache.ContainsKey(configItemName))
+                return TryGetConfigItemValue(_configCache[configItemName], defaultValue);
+
             var configItem = GetConfigItemByName(configItemName);
 
             return TryGetConfigItemValue(configItem, defaultValue);

+ 127 - 0
GreenTree.Nachtragsmanagement.Services/Configuration/StatusConfigurationReference.cs

@@ -0,0 +1,127 @@
+using Autofac;
+using GreenTree.Nachtragsmanagement.Core;
+using GreenTree.Nachtragsmanagement.Services.Appendix;
+using GreenTree.Nachtragsmanagement.Services.Deviation;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace GreenTree.Nachtragsmanagement.Services.Configuration
+{
+    public class StatusConfigurationReference : IConfigurationReference
+    {
+        /// <summary>
+        /// Id
+        /// </summary>
+        public Guid Id
+        {
+            get
+            {
+                return Guid.Parse("28A46681-C93E-47F6-99F3-1A6B344124C7");
+            }
+        }
+
+        /// <summary>
+        /// Internal name
+        /// </summary>
+        public string Name
+        {
+            get
+            {
+                return "ConfigurationReference.StatusConfigurationReference";
+            }
+        }
+
+        /// <summary>
+        /// Display name
+        /// </summary>
+        public string DisplayName
+        {
+            get
+            {
+                return "Vertragsabweichungsstatus";
+            }
+        }
+
+        /// <summary>
+        /// Determines if mutiple values are selectable
+        /// </summary>
+        public bool IsMultipleSelection
+        {
+            get
+            {
+                return true;
+            }
+        }
+
+        /// <summary>
+        /// Get available values
+        /// </summary>
+        public ConfigurationReferenceElement[] GetAvailableValues()
+        {
+            var deviationService = Singleton<IContainer>.Instance.Resolve<IDeviationService>();
+
+            return
+                deviationService
+                    .GetAllStatuses()
+                    .Select(s => new ConfigurationReferenceElement
+                    {
+                        Value = s.Id,
+                        Text = s.Description
+                    })
+                    .ToArray();
+        }
+
+        /// <summary>
+        /// Transforms mutiple selected values into a single line value
+        /// </summary>
+        /// <param name="values">Selected values.</param>
+        public string TransformValueCollectionToValue(string[] values)
+        {
+            return
+                String.Join(", ", values);
+        }
+
+        /// <summary>
+        /// Transforms the single line value into a mutiple selected values
+        /// </summary>
+        /// <param name="value">Single line value.</param>
+        public string[] TransformValueToValueCollection(string value)
+        {
+            return
+                String.IsNullOrEmpty(value)
+                    ? new string[0]
+                    : value.Split(',')
+                        .Select(s => s.Trim())
+                        .ToArray();
+        }
+
+        /// <summary>
+        /// Converts the string converted value into strongly typed value
+        /// </summary>
+        /// <param name="values">The selected value.</param>
+        public T GetValue<T>(string value)
+        {
+            return (T)((object)Convert.ToInt32(value));
+        }
+
+        /// <summary>
+        /// Converts the string converted values into strongly typed values
+        /// </summary>
+        /// <param name="values">The selected values.</param>
+        public T GetValues<T>(string[] values)
+        {
+            if (values == null)
+                return default(T);
+
+            return 
+                (T)(
+                    (object)
+                        (values
+                            .Select(v => Convert.ToInt32(v))
+                            .ToArray()));
+        }
+    }
+}

+ 1 - 0
GreenTree.Nachtragsmanagement.Services/GreenTree.Nachtragsmanagement.Services.csproj

@@ -72,6 +72,7 @@
     <Compile Include="Configuration\ConfigurationService.cs" />
     <Compile Include="Configuration\IConfigurationReference.cs" />
     <Compile Include="Configuration\IConfigurationService.cs" />
+    <Compile Include="Configuration\StatusConfigurationReference.cs" />
     <Compile Include="Configuration\StateConfigurationReference.cs" />
     <Compile Include="DbContext\DbContextService.cs" />
     <Compile Include="DbContext\IDbContextService.cs" />

+ 1 - 0
GreenTree.Nachtragsmanagement.Web/App_Data/InstalledPlugins.txt

@@ -0,0 +1 @@
+GreenTree.Nachtragsmanagement.Test

+ 18 - 0
GreenTree.Nachtragsmanagement.Web/Controllers/SiteController.cs

@@ -241,6 +241,8 @@ namespace GreenTree.Nachtragsmanagement.Web.Controllers
         private decimal accumulatedCustomSummaryDeviationValue = 0;
         private decimal accumulatedCustomSummarySiteDeviationValue = 0;
         private decimal accumulatedCustomSummaryAppendixValueRemaining = 0;
+        private decimal accumulatedCustomSummaryAppendixValueCalculated = 0;
+        private decimal accumulatedCustomSummaryAppendixValueCleared = 0;
         private decimal accumulatedCustomSummaryAppendixValueNegotiated = 0;
 
         /// <summary>
@@ -276,6 +278,18 @@ namespace GreenTree.Nachtragsmanagement.Web.Controllers
                 e.Result = accumulatedCustomSummaryAppendixValueRemaining;
             }
 
+            if (label.Tag.ToString() == "AppendixValueCalculated")
+            {
+                accumulatedCustomSummaryAppendixValueCalculated += e.CalculatedValues.OfType<decimal>().Sum();
+                e.Result = accumulatedCustomSummaryAppendixValueCalculated;
+            }
+
+            if (label.Tag.ToString() == "AppendixValueCleared")
+            {
+                accumulatedCustomSummaryAppendixValueCleared += e.CalculatedValues.OfType<decimal>().Sum();
+                e.Result = accumulatedCustomSummaryAppendixValueCleared;
+            }
+
             if (label.Tag.ToString() == "AppendixValueNegotiated")
             {
                 accumulatedCustomSummaryAppendixValueNegotiated += e.CalculatedValues.OfType<decimal>().Sum();
@@ -314,6 +328,8 @@ namespace GreenTree.Nachtragsmanagement.Web.Controllers
             if (e.FieldName == "DeviationValue") { e.Summary.FormatString = "VA-Wert ∑ = {0:c2}"; }
             if (e.FieldName == "SiteDeviationValue") { e.Summary.FormatString = "Off.VA ∑ = {0:c2}"; }
             if (e.FieldName == "AppendixValueRemaining") { e.Summary.FormatString = "Off.NT ∑ {0:c2}"; }
+            if (e.FieldName == "AppendixValueCalculated") { e.Summary.FormatString = "Bew.NT ∑ {0:c2}"; }
+            if (e.FieldName == "AppendixValueCleared") { e.Summary.FormatString = "Pot.NT ∑ {0:c2}"; }
             if (e.FieldName == "AppendixValueNegotiated") { e.Summary.FormatString = "Verh.NT ∑ {0:c2}"; }
         }
 
@@ -326,6 +342,8 @@ namespace GreenTree.Nachtragsmanagement.Web.Controllers
             if (e.FieldName == "DeviationValue") { e.Summary.FormatString = "{0:c2}"; }
             if (e.FieldName == "SiteDeviationValue") { e.Summary.FormatString = "{0:c2}"; }
             if (e.FieldName == "AppendixValueRemaining") { e.Summary.FormatString = "{0:c2}"; }
+            if (e.FieldName == "AppendixValueCalculated") { e.Summary.FormatString = "{0:c2}"; }
+            if (e.FieldName == "AppendixValueCleared") { e.Summary.FormatString = "{0:c2}"; }
             if (e.FieldName == "AppendixValueNegotiated") { e.Summary.FormatString = "{0:c2}"; }
         }
 

+ 26 - 0
GreenTree.Nachtragsmanagement.Web/Extensions/GridViewSettingsHelper.cs

@@ -355,6 +355,32 @@ namespace GreenTree.Nachtragsmanagement.Web.Extensions
                 DisplayFormat = "Off.NT ∑ = <i>{0:c2}</i>"
             });
 
+            s.TotalSummary.Add(new ASPxSummaryItem
+            {
+                FieldName = "AppendixValueCalculated",
+                SummaryType = DevExpress.Data.SummaryItemType.Sum,
+                DisplayFormat = "Bew.NT ∑<br/><i>{0:c2}</i>"
+            });
+            s.GroupSummary.Add(new ASPxSummaryItem
+            {
+                FieldName = "AppendixValueCalculated",
+                SummaryType = DevExpress.Data.SummaryItemType.Sum,
+                DisplayFormat = "Bew.NT ∑ = <i>{0:c2}</i>"
+            });
+
+            s.TotalSummary.Add(new ASPxSummaryItem
+            {
+                FieldName = "AppendixValueCleared",
+                SummaryType = DevExpress.Data.SummaryItemType.Sum,
+                DisplayFormat = "Pot.NT ∑<br/><i>{0:c2}</i>"
+            });
+            s.GroupSummary.Add(new ASPxSummaryItem
+            {
+                FieldName = "AppendixValueCleared",
+                SummaryType = DevExpress.Data.SummaryItemType.Sum,
+                DisplayFormat = "Pot.NT ∑ = <i>{0:c2}</i>"
+            });
+
             s.TotalSummary.Add(new ASPxSummaryItem
             {
                 FieldName = "AppendixValueNegotiated",

+ 6 - 1
GreenTree.Nachtragsmanagement.Web/Models/Deviation/DeviationDataModel.cs

@@ -78,6 +78,9 @@ namespace GreenTree.Nachtragsmanagement.Web.Models.Deviation
             if (deviationEntity == null && !newWhenIsNull)
                 throw new ArgumentNullException("deviationEntity", "Cannot create DeviationDataModel from NULL deviation entity.");
 
+            var closedDeviationStatuses = configurationService.TryGetConfigItemValue<int[]>(
+                "GreenTree.Nachtragsmanagement.DeviationGrid.ClosedDeviationStatuses", new[] { 2, 4 });
+
             var model = new DeviationDataModel
             {
                 Id = deviationEntity.Id,
@@ -156,7 +159,9 @@ namespace GreenTree.Nachtragsmanagement.Web.Models.Deviation
                             .Select(u => String.Format("{0} ({1})", u.LastName, u.Roles))),
                 AppendixId = deviationEntity.AppendixId,
                 AppendixDescription = deviationEntity.Appendix == null
-                    ? "Offen"
+                    ? closedDeviationStatuses.Contains(deviationEntity.StatusId ?? 0)
+                        ? "Geschlossen"
+                        : "Offen"
                     : deviationEntity.Appendix.CustomNumber,
                 StatusId = deviationEntity.StatusId.Value,
                 StatusDescription = deviationEntity.Status == null

+ 7 - 0
GreenTree.Nachtragsmanagement.Web/Models/Site/SiteDataModel.cs

@@ -168,6 +168,13 @@ namespace GreenTree.Nachtragsmanagement.Web.Models.Site
                             r.Value.HasValue
                                 ? r.Value.Value
                                 : 0),
+                AppendixValueNegotiated =
+                    siteEntity.Appendices
+                        .Where(r => !remainingAppendixStatuses.Contains(r.StateId ?? 0))
+                        .Sum(r =>
+                            r.NegotiationValue.HasValue
+                                ? r.NegotiationValue.Value
+                                : 0),
                 AppendixValueCalculated =
                     siteEntity.Appendices
                         .Where(r => remainingAppendixStatuses.Contains(r.StateId ?? 0))

+ 1 - 1
GreenTree.Nachtragsmanagement.Web/Models/Site/SiteTreeDataModel.cs

@@ -98,7 +98,7 @@ namespace GreenTree.Nachtragsmanagement.Web.Models.Site
             var orderedAppendices = siteEntity
                 .Appendices
                 .OrderBy(a =>
-                    a.CustomNumber.Any(c => Char.IsLetter(c))
+                    a.CustomNumber.Any(c => !Char.IsNumber(c))
                         ? 0
                         : Convert.ToInt32(a.CustomNumber));
                 

+ 3 - 0
GreenTree.Nachtragsmanagement.Web/Views/Admin/Plugins/View.cshtml

@@ -16,6 +16,9 @@
 		setTimeout(function () {
 			devGridViewPlugin.PerformCallback();
 		}, 500);
+		$.ajaxSetup({
+			cache: false
+		});
 	});
 
 	$(window).resize(function () {

+ 3 - 0
GreenTree.Nachtragsmanagement.Web/Views/Admin/Roles/View.cshtml

@@ -18,6 +18,9 @@
 		setTimeout(function () {
 			devGridViewRole.PerformCallback();
 		}, 500);
+		$.ajaxSetup({
+			cache: false
+		});
 	});
 
 	$(window).resize(function () {

+ 3 - 0
GreenTree.Nachtragsmanagement.Web/Views/Admin/Users/View.cshtml

@@ -16,6 +16,9 @@
 		setTimeout(function () {
 			devGridViewUser.PerformCallback();
 		}, 500);
+		$.ajaxSetup({
+			cache: false
+		});
 	});
 
 	$(window).resize(function () {

+ 6 - 1
GreenTree.Nachtragsmanagement.Web/Views/Appendices/Claims.cshtml

@@ -14,7 +14,12 @@
 		category: "Kategorie"
 	};
 
-	$(document).ready(setListBoxHeights);
+	$(document).ready(function () {
+		setListBoxHeights();
+		$.ajaxSetup({
+			cache: false
+		});
+	});
 	$(window).resize(setListBoxHeights);
 
 	function setListBoxHeights() {

+ 3 - 0
GreenTree.Nachtragsmanagement.Web/Views/Appendices/View.cshtml

@@ -16,6 +16,9 @@
 		setTimeout(function () {
 			devGridViewAppendix.PerformCallback();
 		}, 500);
+		$.ajaxSetup({
+			cache: false
+		});
 	});
 
 	$(window).resize(function () {

+ 3 - 0
GreenTree.Nachtragsmanagement.Web/Views/Config/View.cshtml

@@ -15,6 +15,9 @@
 		setTimeout(function () {
 			devGridViewConfigItem.PerformCallback();
 		}, 500);
+		$.ajaxSetup({
+			cache: false
+		});
 	});
 
 	$(window).resize(function () {

+ 6 - 1
GreenTree.Nachtragsmanagement.Web/Views/Deviations/Claims.cshtml

@@ -15,7 +15,12 @@
 		kind: "Art"
 	};
 
-	$(document).ready(setListBoxHeights);
+	$(document).ready(function () {
+		setListBoxHeights();
+		$.ajaxSetup({
+			cache: false
+		});
+	});
 	$(window).resize(setListBoxHeights);
 
 	function setListBoxHeights() {

+ 3 - 0
GreenTree.Nachtragsmanagement.Web/Views/Deviations/View.cshtml

@@ -29,6 +29,9 @@
 		setTimeout(function () {
 			devGridViewDeviation.PerformCallback();
 		}, 500);
+		$.ajaxSetup({
+			cache: false
+		});
 	});
 
 	$(window).resize(function () {

+ 33 - 2
GreenTree.Nachtragsmanagement.Web/Views/Home/Index.cshtml

@@ -175,6 +175,33 @@
 		}
 	}
 
+	function checkPopupItemSizes() {
+		var originalWidth = 0;
+		$('.popupPanelItem').each(function () {
+			if ($(this).attr('data-origwidth') !== undefined) {
+				originalWidth += parseInt($(this).attr('data-origwidth'));
+			}
+		});
+		var footerWidth = $('.globalFooter').width();
+		if (originalWidth > (footerWidth * 1.05)) {
+			$('.popupPanelItem').each(function () {
+				$(this).children('span').text('');
+			});
+		} else if (originalWidth > (footerWidth * 0.9)) {
+			$('.popupPanelItem').each(function () {
+				$(this).children('span').text($(this).attr('title').substr(0, 4) + '...');
+			});
+		} else if (originalWidth > (footerWidth * 0.65)) {
+			$('.popupPanelItem').each(function () {
+				$(this).children('span').text($(this).attr('title').substr(0, 6) + '...');
+			});
+		} else {
+			$('.popupPanelItem').each(function () {
+				$(this).children('span').text($(this).attr('title'));
+			});
+		}
+	}
+
 	function showFunction(e, parameters) {
 		if (!e) return;
 		var controls = ASPxClientControl.GetControlCollection();
@@ -218,14 +245,17 @@
 			openOffsetX += 50;
 			openOffsetY += 25;
 			var popupPanel = $(
-				'<div id="' + e.item.name + '-PanelItem" class="popupPanelItem" onclick=\'normalizeFunction("' + e.item.name + '")\'>' +
+				'<div id="' + e.item.name + '-PanelItem" class="popupPanelItem" title="' + popupDescriptions[e.item.name] + '" onclick=\'normalizeFunction("' + e.item.name + '")\'>' +
 					'<img src="' + popupImages[e.item.name] + '" />' +
 					'<span>' + popupDescriptions[e.item.name] + '</span>' +
 					'<img src="@Url.Content("~/Content/Images/close-16.png")" onclick=\'hideFunction("' + e.item.name + '", false)\' />' +
 				'</div>')
 				.hide()
 				.appendTo(".popupPanel")
-				.fadeIn(500);
+				.fadeIn(500, function () {
+					$(this).attr("data-origwidth", $(this).outerWidth(true));
+					checkPopupItemSizes();
+				});
 		}
 
 		if (popupMaxOnStartup[e.item.name] && popupMaxOnStartup[e.item.name] == true) {
@@ -316,6 +346,7 @@
 			iframe.contentWindow.document.close();
 			$("#" + popupName + "-PanelItem").fadeOut(500, function () {
 				$(this).remove();
+				checkPopupItemSizes();
 			});
 		}
 		event.stopPropagation();

+ 3 - 0
GreenTree.Nachtragsmanagement.Web/Views/Misc/HelpPages.cshtml

@@ -17,6 +17,9 @@
 				ViewContext.Writer.Write("editHelpPage(" + (int)ViewData["InitialEditHelpPage"] + ");");
 			}
 		}, 500);
+		$.ajaxSetup({
+			cache: false
+		});
 	});
 
 	$(window).resize(function () {

+ 3 - 0
GreenTree.Nachtragsmanagement.Web/Views/Misc/Logs.cshtml

@@ -14,6 +14,9 @@
 		setTimeout(function () {
 			devGridViewLog.PerformCallback();
 		}, 500);
+		$.ajaxSetup({
+			cache: false
+		});
 	});
 
 	$(window).resize(function () {

+ 3 - 0
GreenTree.Nachtragsmanagement.Web/Views/Misc/MailNotifications.cshtml

@@ -16,6 +16,9 @@
 		setTimeout(function () {
 			devGridViewMailNotifications.PerformCallback();
 		}, 500);
+		$.ajaxSetup({
+			cache: false
+		});
 	});
 
 	$(window).resize(function () {

+ 3 - 0
GreenTree.Nachtragsmanagement.Web/Views/Sites/_SiteEditPartial.cshtml

@@ -33,6 +33,9 @@
 					}
 				}
 			});
+			$.ajaxSetup({
+				cache: false
+			});
 		});
 
 		function saveSite() {