gpt4 book ai didi

javascript - 当我将 C# 行添加到 View Razor 页面中的 JavaScript 代码时出现 ReferenceError

转载 作者:行者123 更新时间:2023-12-03 11:34:52 25 4
gpt4 key购买 nike

我在 razror View 页面中有此代码:

<!DOCTYPE html>
<html>
<body>
<button onclick="myFunction()">
Click me</button>
<p id="demo">
</p>
@{
List<UserContact> userContacts = ViewBag.contacts;
String contacts1 = Html.Partial("~/Views/Shared/Contacts.cshtml", userContacts).ToHtmlString();
}
<script type="text/javascript">
var contacts2 = @contacts1;
function myFunction() {
alert(contacts2);
}
</script>
</body>
</html>

当我按下按钮点击我时,我收到此错误:

ReferenceError:myFunction 未定义

为什么我会收到此错误?

最佳答案

Any idea why I get this error?

看起来您的 HTML 内容相当糟糕。您已将 contacts1 服务器端变量分配给 HTML 片段:

String contacts1 = Html.Partial("~/Views/Shared/Contacts.cshtml", userContacts).ToHtmlString();

然后将其注入(inject)标签内:

<script type="text/javascript">
var contacts2 = @contacts1;
function myFunction() {
alert(contacts2);
}
</script>

这完全破坏了你的标记。在浏览器中查看生成页面的源代码,您就会发现它有多么糟糕。

And how can I fix it?

目前还不太清楚您要实现的目标,因此很难说如何解决此问题,但对于初学者,您可以尝试使用有效的标记和 javascript:

<script type="text/javascript">
function myFunction() {
alert('The button was clicked');
}
</script>

当单击按钮时,您似乎正在尝试从服务器加载一些标记。如果是这种情况,您可能会考虑使用 AJAX。

<小时/>

更新:

看起来您正在尝试将服务器端字符串变量分配给 JavaScript 变量。这可以通过正确编码来完成:

<script type="text/javascript">
var contacts2 = @Json.Encode(contacts1);
function myFunction() {
alert(contacts2);
}
</script>

关于javascript - 当我将 C# 行添加到 View Razor 页面中的 JavaScript 代码时出现 ReferenceError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26560742/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com