當你說
在我的系統浮點數存儲用逗號作爲小數點分隔
我假設你的意思是他們是格式化用逗號,浮點號碼存儲爲float
。
雖然您可以通過設置文化來解決格式問題,但「真正的」修復方法是更改代碼。好吧,這不是你的代碼,所以也許你不想在這個場合做到這一點,但對於一般的參考你需要確保格式化浮動或其他任何你使用適當的文化。在爲一個API使用的數字格式化的情況下,您可以使用InvariantCulture。
I.e.使用foo.ToString(CultureInfo.InvariantCulture)
而不是foo.ToString()
,同樣使用string.Format(...)。
編輯我只是看看NerdDinner代碼,並已意識到這個錯誤是在Javascript中不在C#中,所以我上面的代碼是不會幫助。我不知道是否可以在Javascript中格式化數字,但我認爲真正的解決方案是修復模型代碼以返回格式正確的字符串。
編輯2我建議你嘗試以下操作: 在SearchController.cs
變化JsonDinner
的Latitude
和Longitude
到strings
。即
public class JsonDinner {
public int DinnerID { get; set; }
public string Title { get; set; }
public string Latitude { get; set; }
public string Longitude { get; set; }
public string Description { get; set; }
public int RSVPCount { get; set; }
}
然後向下滾動到SearchByLocation方法,改變緯度/龍線正確格式化字符串的JavaScript:
Latitude = dinner.Latitude.ToString(CultureInfo.InvariantCulture),
Longitude = dinner.Longitude.ToString(CultureInfo.InvariantCulture),
這應該意味着你不需要你把修復,並應該解決你的其他問題......我將在哪裏發表評論。希望這可以幫助,我還沒有完全測試,因爲我不在你的語言環境,但它肯定似乎工作。
看來,這已經記錄爲錯誤:http ://nerddinner.codeplex.com/WorkItem/View.aspx?WorkItemId = 2616 – 2009-04-17 16:17:32
嗯。也許這是一個錯誤?我在我的web.config文件中添加了 ,以確保文化被設置爲en-US應用程序範圍,但是根本沒有任何幫助,只有在我發佈後才發佈。 –
2009-04-23 13:12:59