1

我在我的数据库中定义了纬度和经度。两者都是浮点数据类型。我想在地图上显示地理信息。我的问题是当我使用 @Model(我使用 Asp.net MVC 和 Razor 语法)将这些信息传递给变量时。代码是

var latitude = @Model.Latitude;
var longitude = @Model.Longitude;

它向我显示了每条线后面的一条红线。当我将鼠标悬停在那里时,它显示为

Double?Dinner.Latitude
Double?Dinner.Longitude

我对此一无所知。然后我尝试将数据类型转换为

var latitude = (double)(@Model.Latitude);
var latitude = (double)(@Model.Longitude);

红色卷线确实消失了,但它向我展示了

"Undefined Double"

谁知道为什么?

谢谢

4

2 回答 2

1
decimal latitude = Convert.ToDecimal(Model.Latitude);
decimal longitude= Convert.ToDecimal(Model.Longitude);
于 2013-06-13T12:10:37.730 回答
0

当您在剃刀范围内时,您不需要使用@keyworkd 来访问服务器端值。只需尝试打开剃刀块并设置变量,尝试以下操作:

@{

  var latitude = (double)Model.Latitude;
  var longitude= (double)Model.Longitude;

}

然后显示它,使用@剃刀keyworkd:

<p>@latitude</p>
<p>@longitude</p>

您还可以使用ToString()double 类型的方法格式化此值:

<p>@latitude.ToString("0.000")</p>
于 2013-06-13T11:21:54.343 回答