Приложение ASP .NET Core развернуто в IIS, но широта и долгота не имеют десятичной точки в приложении, развернутом в IIS - PullRequest
0 голосов
/ 08 ноября 2019

Я запускаю приложение ASP .NET через Visual Studio. Данные широты и долготы извлекаются из базы данных SQL Server. Приложение работает без проблем при запуске через локальный хост Visual Studio, но при развертывании его в IIS данные отображаются без десятичной точки.

Тип данных в базе данных - это число с плавающей запятой.

Модальный класс TestTable для извлечения данных из базы данных.

public class TestTable
{
    public int ID { get; set; }
    public string Product_Description { get; set; }
    public int PolicyNo { get; set; }
    public string Insured { get; set; }
    public string TAB_Ratio { get; set; }
    public string Broker_Name { get; set; }
    public DateTime Policy_Inception_Date { get; set; }
    public string Match { get; set; }
    public string Detail_Address { get; set; }
    public int Building_SI { get; set; }
    public decimal Total_API_Outside { get; set; }
    public decimal Rate { get; set; }
    public decimal Total_Loss_Ratio { get; set; }
    public decimal ThrdParty_Loss_ratio { get; set; }
    public decimal ThrdParty_Attritional_Ratio { get; set; }
    public double Lat { get; set; }
    public double Long { get; set; }
}

Foreach для извлечения данных из функции TestTable

@{ var mapCounter = 0;}
@foreach (var item in Model.TestTable) {
   if(mapCounter < 200)
   {
      mapCounter++;
      <text>
         console.log(@item.Lat);
      </text>
      @:addMarker(@item.Lat, @item.Long, '@item.ID', '@item.Product_Description', '@item.Insured', '@item.TAB_Ratio', '@item.Broker_Name', '@item.PolicyNo', '@item.Match', '@item.Detail_Address', '@item.Building_SI', '@item.Total_API_Outside', '@item.Rate', '@item.Total_Loss_Ratio', '@item.ThrdParty_Loss_ratio', '@item.ThrdParty_Attritional_Ratio');
     }
 }

для создания маркеров на основе данных из базы данных

 function addMarker(latitude, longitude, title, description, insured, tab_ratio, broker_name, policy_inception, match, detail_address, building_si, total_api_outside, rate, total_loss_ratio, thrdparty_loss_ratio, thrdparty_attritional_ratio)
 {
     var latLng = new google.maps.LatLng(latitude, longitude);

     var marker = new google.maps.Marker({
         position: latLng,
         title: title,
         map: map,
         icon: icon,
         draggable: false
     });

     allMarkers.push(marker);
 }

См. Консоль для вывода.

Верхнее изображение из Visual Studio. Нижнее изображение с сервера IIS.

Заранее благодарим.

Visual Studio Localhost .

Сервер IIS

IIS Server console.log вывод

1 Ответ

0 голосов
/ 11 ноября 2019

Для всех, кто имеет такую ​​же проблему. Проблема с региональными настройками в приложении ASP .NET. По умолчанию это запятая. Обходным решением для меня было установить значение в строковом формате с помощью «.»в качестве разделителя.

using System.Globalization;

console.log(@string.Format(CultureInfo.InvariantCulture,"{0:#.#############################}",item.Lat));
console.log(@string.Format(CultureInfo.InvariantCulture,"{0:#.#############################}",item.Long));

Устанавливает формат регионального номера для приложения независимо от того, на какие региональные настройки настроен аппарат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...