Javascript Bing地图无法正确显示

Javascript Bing地图无法正确显示,javascript,asp.net-mvc,bing-maps,Javascript,Asp.net Mvc,Bing Maps,我是书呆子。我想上传一张地图,显示每顿晚餐的地理信息。我定义了一个名为“Map”的JS文件。和“地图”局部视图。然后,我在DinPerform视图中渲染“贴图”局部视图。但是当我运行项目时,地图没有显示出来。并向我显示了以下错误: Unhandled exception at line 149, column 9 in http://localhost:52372/Dinner/Edit/14 0x800a1391 - Microsoft JScript runtime error: 'Cen

我是书呆子。我想上传一张地图,显示每顿晚餐的地理信息。我定义了一个名为“Map”的JS文件。和“地图”局部视图。然后,我在DinPerform视图中渲染“贴图”局部视图。但是当我运行项目时,地图没有显示出来。并向我显示了以下错误:

Unhandled exception at line 149, column 9 in http://localhost:52372/Dinner/Edit/14

0x800a1391 - Microsoft JScript runtime error: 'Center' is undefined
下面显示了相关代码以及我的问题

地图js:

var map = null;
var points = [];
var shapes = [];
var center = null;


function LoadMap(latitude, longitude, onMapLoaded) {
    map = new VEMap('theMap');
    options = new VEMapOptions();
    options.EnableBirdseye = false;

    // Makes the control bar less obtrusize. 
    map.SetDashboardSize(VEDashboardSize.Small);
    if (onMapLoaded != null)
        map.onLoadMap = onMapLoaded;
    if (latitude != null && longitude != null) {
        center = new VELatLong(latitude, longitude);
    }
    map.LoadMap(center, null, null, null, null, null, null, options);
}

function LoadPin(LL, name, description) {
    var shape = new VEShape(VEShapeType.Pushpin, LL);
    //Make a nice Pushpin shape with a title and description 
    shape.SetTitle("<span class=\"pinTitle\"> " + escape(name) + "</span>");
    if (description !== undefined) {
        shape.SetDescription("<p class=\"pinDetails\">" +
        escape(description) + "</p>");
    }
    map.AddShape(shape);
    points.push(LL);
    shapes.push(shape);
}

function FindAddressOnMap(where) {
    var numberOfResults = 20;
    var setBestMapView = true;
    var showResults = true;
    map.Find("", where, null, null, null,
    numberOfResults, showResults, true, true,
setBestMapView, callbackForLocation);
}

function callbackForLocation(layer, resultsArray, places,
hasMore, VEErrorMessage) {
    clearMap();
    if (places == null)
        return;
    //Make a pushpin for each place we find 
    $.each(places, function (i, item) {
        description = "";
        if (item.Description !== undefined) {
            description = item.Description;
        }
        var LL = new VELatLong(item.LatLong.Latitude,
        item.LatLong.Longitude);
        LoadPin(LL, item.Name, description);
    });
    //Make sure all pushpins are visible 
    if (points.length > 1) {
        map.SetMapView(points);
    }
    //If we've found exactly one place, that's our address. 
    if (points.length === 1) {
        $("#Latitude").val(points[0].Latitude);
        $("#Longitude").val(points[0].Longitude);
    }
}

function clearMap() {
    map.Clear();
    points = [];
    shapes = [];
}
var-map=null;
var点=[];
变量形状=[];
var中心=null;
功能加载图(纬度、经度、加载时){
地图=新的VEMap(“地图”);
选项=新的VEMapOptions();
options.EnableBirdseye=false;
//使控制栏不那么突出。
map.SetDashboardSize(VEDashboardSize.Small);
如果(加载时!=null)
map.onLoadMap=未加载;
if(纬度!=null和经度!=null){
中心=新高度(纬度、经度);
}
LoadMap(中心、空、空、空、空、空、空、空、空、选项);
}
函数LoadPin(LL、名称、描述){
var shape=新的VEShape(VEShapeType.Pushpin,LL);
//制作一个带有标题和描述的漂亮图钉形状
SetTitle(“+escape(name)+”);
如果(说明!==未定义){
shape.SetDescription(“

”+ 转义(描述)+“

”; } map.AddShape(shape); 点。推(LL); 形状。推(形状); } 函数FindAddressOnMap(其中){ var numberOfResults=20; var setBestMapView=true; var showResults=true; map.Find(“),其中,null,null,null, numberOfResults,showResults,true,true, setBestMapView,callbackForLocation); } 函数调用位置(图层、结果数组、位置、, hasMore,VEErrorMessage){ clearMap(); if(places==null) 返回; //为我们找到的每个地方做一个图钉 $。每个(位置、功能(i、项目){ description=“”; 如果(item.Description!==未定义){ 描述=项目。描述; } var LL=新高度(item.LatLong.Latitude, 经度); LoadPin(LL、项目名称、说明); }); //确保所有的图钉都可见 如果(点长度>1){ map.SetMapView(点); } //如果我们只找到一个地方,那就是我们的地址。 如果(points.length==1){ $(“#纬度”).val(点[0]。纬度); $(“#经度”).val(点[0]。经度); } } 函数clearMap(){ map.Clear(); 点数=[]; 形状=[]; }
地图局部视图:

    @model NerdDinner.Models.Dinner

<script src="http://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6.2" type="text/javascript"></script> 
<script src="/Scripts/Map.js" type="text/javascript"></script> 

<div id="theMap">
    </div>

<script type="text/javascript">

    $(document).ready(function () {
        var latitude = @Model.Latitude;
        var longitude = @Model.Longitude;

        if ((latitude == 0) || (longitude == 0))
            LoadMap();
        else
            LoadMap(latitude, longitude, mapLoad);
    });

    function mapLoad()
    {
        var title = "@Html.Encode(Model.Title)"
        var address = "@Html.Encode(Model.Address)"

        LoadPin(Center,title,address);
        map.setZoomLevel(14);
    }
    </script>
@model NerdDinner.Models.Dinner
$(文档).ready(函数(){
var latitude=@Model.latitude;
var longitude=@Model.longitude;
如果((纬度==0)| |(经度==0))
LoadMap();
其他的
负荷图(纬度、经度、负荷图);
});
函数mapLoad()
{
var title=“@Html.Encode(Model.title)”
var address=“@Html.Encode(Model.address)”
LoadPin(中心、标题、地址);
地图。setZoomLevel(14);
}
DinnerPerform视图:

@model NerdDinner.Models.DinnerFormViewModel

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>

@using (Html.BeginForm()) {
    @Html.ValidationSummary(true)
    <fieldset>
        <legend>Dinner</legend>

        <div class="editor-label">
            @Html.LabelFor(model => model.Dinner.Title)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Dinner.Title)
            @Html.ValidationMessageFor(model => model.Dinner.Title)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.Dinner.Latitude)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Dinner.Latitude)
            @Html.ValidationMessageFor(model => model.Dinner.Latitude)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.Dinner.Longitude)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Dinner.Longitude)
            @Html.ValidationMessageFor(model => model.Dinner.Longitude)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.Dinner.EventDate)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Dinner.EventDate)
            @Html.ValidationMessageFor(model => model.Dinner.EventDate)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.Dinner.ContactPhone)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Dinner.ContactPhone)
            @Html.ValidationMessageFor(model => model.Dinner.ContactPhone)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.Dinner.Address)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Dinner.Address)
            @Html.ValidationMessageFor(model => model.Dinner.Address)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.Dinner.Country)
        </div>
        <div class="editor-field">
            @Html.DropDownList("Country", @Model.Countries)
            @Html.ValidationMessageFor(model => model.Countries)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.Dinner.HostedBy)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Dinner.HostedBy)
            @Html.ValidationMessageFor(model => model.Dinner.HostedBy)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.Dinner.Description)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Dinner.Description)
            @Html.ValidationMessageFor(model => model.Dinner.Description)
        </div>

        <p>
            <input type="submit" value="Save" />
        </p>

        <div id="mapDiv">
            @{Html.RenderPartial("Map", Model.Dinner);}
        </div>

    </fieldset>

    <script type="text/javascript">
        $(document).ready(function () {
            $("#Address").blur(function (evt) {
                $("#Latitude").val("");
                $("#Longitude").val("");

                var address = jQuery.trim($("#Address").val());
                if (address.length < 1)
                    return;

                FindAddressOnMap(address);
            });
        });
        </script>
}
@model NerdDinner.Models.viewmodel
@使用(Html.BeginForm()){
@Html.ValidationSummary(true)
晚餐
@LabelFor(model=>model.Dinner.Title)
@EditorFor(model=>model.Dinner.Title)
@Html.ValidationMessageFor(model=>model.Dinner.Title)
@LabelFor(model=>model.Dinner.Latitude)
@EditorFor(model=>model.Dinner.Latitude)
@Html.ValidationMessageFor(model=>model.Dinner.Latitude)
@LabelFor(model=>model.Dinner.Longitude)
@EditorFor(model=>model.Dinner.Longitude)
@Html.ValidationMessageFor(model=>model.Dinner.Longitude)
@LabelFor(model=>model.Dinner.EventDate)
@EditorFor(model=>model.Dinner.EventDate)
@Html.ValidationMessageFor(model=>model.Dinner.EventDate)
@LabelFor(model=>model.Dinner.ContactPhone)
@EditorFor(model=>model.Dinner.ContactPhone)
@Html.ValidationMessageFor(model=>model.Dinner.ContactPhone)
@LabelFor(model=>model.Dinner.Address)
@EditorFor(model=>model.Dinner.Address)
@Html.ValidationMessageFor(model=>model.Dinner.Address)
@LabelFor(model=>model.Dinner.Country)
@Html.DropDownList(“Country”,@Model.Countries)
@Html.ValidationMessageFor(model=>model.Countries)
@LabelFor(model=>model.Dinner.HostedBy)
@EditorFor(model=>model.Dinner.HostedBy)
@Html.ValidationMessageFor(model=>model.Dinner.HostedBy)
@LabelFor(model=>model.Dinner.Description)
@EditorFor(model=>model.Dinner.Description)
@Html.ValidationMessageFor(model=>model.Dinner.Description)

@{Html.RenderPartial(“Map”,Model.Dinner);} $(文档).ready(函数(){ $(“#地址”).blur(函数(evt){ $(“#纬度”).val(“”); $(“#经度”).val(“”); var address=jQuery.trim($(“#address”).val(); 如果(地址长度<1) 返回; FindAddressOnMap(地址); }); }); }
我认为这方面可能是你的问题:

function mapLoad()
{
    var title = "@Html.Encode(Model.Title)"
    var address = "@Html.Encode(Model.Address)"

    LoadPin(Center,title,address); //this line 
    map.setZoomLevel(14);
}
我没有看到在该范围内的任何地方定义一个名为“Center”的变量。那是149行吗

Unhandled exception at line 149 ...

0x800a1391 - Microsoft JScript runtime error: 'Center' is undefined

谢谢我仔细检查了我的鳕鱼