«отсутствует с помощью директивы» передать данные из базы данных SQL для просмотра asp.net mvc3 c # - PullRequest
0 голосов
/ 11 ноября 2011

Я видел коды, передающие данные модели в представление, но я не видел, чтобы кто-нибудь передавал данные из базы данных sql в представление.Я пытаюсь передать свои данные из базы данных sql в представление, чтобы я мог просмотреть их на своей веб-странице.Я всегда получаю сообщение об ошибке при использовании директивы.

 "CS1061: 'System.Collections.Generic.IEnumerable' does not contain a definition for 'longitude' and no extension method 'longitude' accepting 
 a first argument of type 'System.Collections.Generic.IEnumerable' could be found (are you missing a using directive or an assembly reference?)"

Я что-то упустил .. кто-нибудь знает ??Спасибо.

Вот мой код.Я пытаюсь получить долготу и широту из моей базы данных.

Код контроллера дома

    public ActionResult Index()
    {
        var ldc = new locationDataContext();
        var loc = (from l in ldc.locationModels select l).First();
        return View(loc);
    }

Код индексного представления

@model IEnumerable<googleMap2.Models.locationModel>
@{ 
    ViewBag.Title = "MVC 3 and Google Maps"; 
}

@section Scripts { 
    <script type="text/javascript"  src="http://maps.google.com/maps/api/js?sensor=false"></script>
}

@section Styles { 
    html { height: 80% } 
    body { height: 80%; margin: 0px; padding: 0px } 
    #map_canvas { height: 80% } 
}

<h2>Hello, Google Maps</h2>

<div id="map_canvas" style="width:80%; height:80%"></div>

<script type="text/javascript">

    function initialize() {
        var latlng = new google.maps.LatLng(@Model.longitude, @Model.latitude);
        var options = { zoom: 14, center: latlng, mapTypeId: google.maps.MapTypeId.ROADMAP };
        var map = new google.maps.Map(document.getElementById("map_canvas"), options);
        //google.maps.event.trigger(map, 'resize');
    }

    $(function () {
        initialize();
    }); 

</script>

1 Ответ

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

Ваша модель имеет тип IEnumerable <>, объявленный здесь:

@model IEnumerable<googleMap2.Models.locationModel >

, но здесь:

var latlng = new google.maps.LatLng(@Model.longit ude, @Model.latitude);

Вы пытаетесь сослаться на свойства широты и долготы ...

Итак, ваша модель должна иметь тип googleMap2.Models.locationModel, или вы должны перечислять по вашей модели, т.е.

foreach(var location in model)
{
    var latlng = new google.maps.LatLng(location.longitude, location.latitude);
// rest of code here 
}
...