我将下面的代码添加到我的MVC应用程序中,虽然google在我的文本字段中放置了自动完成功能,但是当使用或呈现其中一个javascript文件时,某些JavaScript文件会抛出错误。 这是visual studio中的错误。当我点击主页面上的提交按钮时会发生错误。
第626行的未处理异常,eval代码中的第256列
0x800a138f - JavaScript运行时错误:无法获取未定义或空引用的属性“值”
这是我添加到_Layout.cshtml
中的head标记的代码<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false&libraries=places"></script>
然后我在_Layout.cshtml
的正文部分末尾添加了以下代码<script type="text/javascript">
var input = document.getElementById('location');
var autocomplete = new google.maps.places.Autocomplete(input);
</script>
最后这里是index.cshtml中带有文本字段的表单,它使用了地点自动完成。
@using (Html.BeginForm("Results", "Home", FormMethod.Get))
{
<p>
<input type="text" name="location" id="location" placeholder="Search For A Studio" />
</p>
<p>
<input class="btn btn-primary btn-lg" value='Submit' type="submit"/>
</p>
}
当下面的行在调试器中被命中时,会抛出错误。
@RenderSection("scripts", required: false)
我阅读了其他帖子并显示了相同的错误消息,我尝试了
var input = document.getElementById('<%=location.ClientID%>');
但它仍然是错误。
已更新! - 我尝试将输入的硬编码值添加到下面,现在我在页面首次加载时以及按下提交时都收到此错误消息。
0x800a01b6 - JavaScript运行时错误:对象不支持属性或方法'getAttribute'
<script type="text/javascript">
var input = "brighton";
var autocomplete = new google.maps.places.Autocomplete(input);
//debugger;
</script>
答案 0 :(得分:0)
这一行
@RenderSection("scripts", required: false)
表示在_Layout母版页内呈现的视图上加载脚本时发生错误。
在您的视图中搜索:
@section Scripts {}
默认情况下,Visual Studio会将jqueryval添加到模板生成的CRUD视图中,因此,如果您正在使用模板,那么您的页面可能会在结尾处显示
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
尝试删除视图上的jqueryval加载。如果需要jquery验证,请将其加载到_Layout
中