我对以下剃须刀有一个看法...
foreach (var result in @Model.Results)
{
if (result.Location != null && result.Location.Lat != null && result.Location.Long != null)
{
<script type="text/javascript" language="javascript">
var MapDataObj = (function () {
mapDataObj = new Object();
mapDataObj.Lat = @result.Location.Lat;
mapDataObj.Long = @result.Location.Long;
mapDataObj.BasedInArea = 'True';
SearchMapDataProperties.searchResultsArray.push(mapDataObj);
return {
};
}());
</script>
}
但是当我将其更改为...
foreach (var result in @Model.Results)
{
if (result.Location != null && result.Location.Lat != null && result.Location.Long != null)
{
<script type="text/javascript" language="javascript">
var MapDataObj = (function () {
mapDataObj = new Object();
mapDataObj.Lat = result.Location.Lat;
mapDataObj.Long = result.Location.Long;
mapDataObj.BasedInArea = 'True';
SearchMapDataProperties.searchResultsArray.push(mapDataObj);
return {
};
}());
</script>
}
(我已从 result.Location 对象中删除了“@”符号)我在 result.Location 上得到了一个空引用异常。
我真的很困惑这种差异。它显然仍将其视为 c#,因为我得到了 YSOD。我只是无法理解有什么区别......
皮特