Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio google将api放在html中工作,但不放在cshtml中_Visual Studio_Google Maps_Asp.net Core - Fatal编程技术网

Visual studio google将api放在html中工作,但不放在cshtml中

Visual studio google将api放在html中工作,但不放在cshtml中,visual-studio,google-maps,asp.net-core,Visual Studio,Google Maps,Asp.net Core,我正在尝试构建一个.net核心项目,它将使用GooglePlacesAPI自动完成一个地址。为了测试这个过程,我从google复制了演示代码,并将其放入visual studio 2017生成的.net核心模板中。自动完成不起作用,但是如果我将.cshtml改为.html并手动导航到它,它就可以正常工作 <!DOCTYPE html> <html> <head> <title>Place Autocomplete Address Form<

我正在尝试构建一个.net核心项目,它将使用GooglePlacesAPI自动完成一个地址。为了测试这个过程,我从google复制了演示代码,并将其放入visual studio 2017生成的.net核心模板中。自动完成不起作用,但是如果我将.cshtml改为.html并手动导航到它,它就可以正常工作

<!DOCTYPE html>
<html>
<head>
  <title>Place Autocomplete Address Form</title>
  <meta name="viewport" content="initial-scale=1.0, user-scalable=no">
  <meta charset="utf-8">
  <style>
    /* Always set the map height explicitly to define the size of the div
       * element that contains the map. */
    #map {
      height: 100%;
    }
    /* Optional: Makes the sample page fill the window. */
    html, body {
      height: 100%;
      margin: 0;
      padding: 0;
    }
  </style>
  <link type="text/css" rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500">
  <style>
    #locationField, #controls {
      position: relative;
      width: 480px;
    }

    #autocomplete {
      position: absolute;
      top: 0px;
      left: 0px;
      width: 99%;
    }

    .label {
      text-align: right;
      font-weight: bold;
      width: 100px;
      color: #303030;
    }

    #address {
      border: 1px solid #000090;
      background-color: #f0f0ff;
      width: 480px;
      padding-right: 2px;
    }

      #address td {
        font-size: 10pt;
      }

    .field {
      width: 99%;
    }

    .slimField {
      width: 80px;
    }

    .wideField {
      width: 200px;
    }

    #locationField {
      height: 20px;
      margin-bottom: 2px;
    }
  </style>
</head>

<body>
  <br />
  <br />
  <br />
  <br />

  <div id="locationField">
    <input id="autocomplete" placeholder="Enter your address"
           onFocus="geolocate()" type="text"></input>
  </div>

  <table id="address">
    <tr>
      <td class="label">Street address</td>
      <td class="slimField">
        <input class="field" id="street_number"
               disabled="true"></input>
      </td>
      <td class="wideField" colspan="2">
        <input class="field" id="route"
               disabled="true"></input>
      </td>
    </tr>
    <tr>
      <td class="label">City</td>
      <!-- Note: Selection of address components in this example is typical.
           You may need to adjust it for the locations relevant to your app. See
           https://developers.google.com/maps/documentation/javascript/examples/places-autocomplete-addressform
      -->
      <td class="wideField" colspan="3">
        <input class="field" id="locality"
               disabled="true"></input>
      </td>
    </tr>
    <tr>
      <td class="label">State</td>
      <td class="slimField">
        <input class="field"
               id="administrative_area_level_1" disabled="true"></input>
      </td>
      <td class="label">Zip code</td>
      <td class="wideField">
        <input class="field" id="postal_code"
               disabled="true"></input>
      </td>
    </tr>
    <tr>
      <td class="label">Country</td>
      <td class="wideField" colspan="3">
        <input class="field"
               id="country" disabled="true"></input>
      </td>
    </tr>
  </table>

  <script>
    // This example displays an address form, using the autocomplete feature
    // of the Google Places API to help users fill in the information.

    // This example requires the Places library. Include the libraries=places
    // parameter when you first load the API. For example:
    // <script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&libraries=places">

    var placeSearch, autocomplete;
    var componentForm = {
      street_number: 'short_name',
      route: 'long_name',
      locality: 'long_name',
      administrative_area_level_1: 'short_name',
      country: 'long_name',
      postal_code: 'short_name'
    };

    function initAutocomplete() {
      // Create the autocomplete object, restricting the search to geographical
      // location types.
      autocomplete = new google.maps.places.Autocomplete(
        (document.getElementById('autocomplete')),
        { types: ['geocode'] });

      // When the user selects an address from the dropdown, populate the address
      // fields in the form.
      autocomplete.addListener('place_changed', fillInAddress);
    }

    function fillInAddress() {
      // Get the place details from the autocomplete object.
      var place = autocomplete.getPlace();

      for (var component in componentForm) {
        document.getElementById(component).value = '';
        document.getElementById(component).disabled = false;
      }

      // Get each component of the address from the place details
      // and fill the corresponding field on the form.
      for (var i = 0; i < place.address_components.length; i++) {
        var addressType = place.address_components[i].types[0];
        if (componentForm[addressType]) {
          var val = place.address_components[i][componentForm[addressType]];
          document.getElementById(addressType).value = val;
        }
      }
    }


  </script>
  <script src="https://maps.googleapis.com/maps/api/js?key=MYAPIKeythat works in html&libraries=places&callback=initAutocomplete"
          async defer></script>
</body>
</html>

放置自动完成的地址表单
/*始终明确设置贴图高度以定义div的大小
*包含映射的元素*/
#地图{
身高:100%;
}
/*可选:使示例页面填充窗口*/
html,正文{
身高:100%;
保证金:0;
填充:0;
}
#位置字段,#控件{
位置:相对位置;
宽度:480px;
}
#自动完成{
位置:绝对位置;
顶部:0px;
左:0px;
宽度:99%;
}
.标签{
文本对齐:右对齐;
字体大小:粗体;
宽度:100px;
颜色:303030;
}
#地址{
边框:1px实心#000090;
背景色:#f0ff;
宽度:480px;
右侧填充:2px;
}
#地址:td{
字号:10pt;
}
.场{
宽度:99%;
}
斯莱姆菲尔德先生{
宽度:80px;
}
.威德菲尔德{
宽度:200px;
}
#位置场{
高度:20px;
边缘底部:2px;
}




街道地址 城市 陈述 邮政编码 国家 //此示例使用自动完成功能显示地址表单 //谷歌的PlacesAPI帮助用户填写信息。 //此示例需要Places库。包括图书馆=地方 //第一次加载API时的参数。例如: // var placeSearch,自动完成; 变量组件形式={ 街道编号:“短名称”, 路线:'long_name', 地点:'long_name', 行政区域级别1:“短名称”, 国家:'long_name', 邮政编码:“短名称” }; 函数initAutocomplete(){ //创建自动完成对象,将搜索限制为地理位置 //位置类型。 autocomplete=new google.maps.places.autocomplete( (document.getElementById('autocomplete')), {类型:['geocode']}); //当用户从下拉列表中选择地址时,填充该地址 //表单中的字段。 autocomplete.addListener('place\u changed',fillInAddress); } 函数fillInAddress(){ //从自动完成对象获取位置详细信息。 var place=autocomplete.getPlace(); for(componentForm中的var组件){ document.getElementById(组件).value=''; document.getElementById(组件).disabled=false; } //从place details中获取地址的每个组件 //并在表单上填写相应的字段。 对于(变量i=0;i
这个问题是因为在谷歌上激活了错误的API。我在google中启用了它,现在它在项目中运行。我不知道为什么它在普通html中工作