gpt4 book ai didi

javascript - ASP.NET MVC5 从部分 View 调用 JavaScript 函数

转载 作者:行者123 更新时间:2023-12-02 13:44:58 25 4
gpt4 key购买 nike

我想从 MVC5 部分 View 调用 JavaScript 函数,并向其传递参数。

我已经声明了函数addItem(item)在文件顶部的单独 JS 文件中,$(document).ready(function {}) 之前功能。

我尝试过以下代码:

@foreach (string item in (TempData["Items"] as List<string>))
{
TempData["Item"] = item;
<script type="text/javascript">addItem(@TempData["Item"]);</script>
}

以及以下内容:

@foreach (string item in (TempData["Items"] as List<string>))
{
<script type="text/javascript">addItem(item);</script>
}

两次尝试均以以下错误结束:Uncaught ReferenceError: theValueOfMyItem is not defined .

我什至尝试过这个:

@foreach (string item in (TempData["Items"] as List<string>))
{
addItem(item);
}

但正如预期的那样,这给了我错误 The name 'addItem' does not exist in the current context .

所以我的问题是:

我可以从部分 View 中使用参数调用 JS 函数吗?如果可能的话,正确的方法是什么?

编辑 1

根据 Carsten Løvbo AndersenSatpal 的建议,我收到以下错误:Uncaught TypeError: addItem is not a function .

这是我定义函数的方式:

function addItem(item) {
// processing...
}

最佳答案

在您的部分 View 中,首先将 Items 列表转换为 Javascript 数组,并使用 javascript for 循环调用您的 addItem 方法。

<script type="text/javascript">
$(function(){
var itemArray = @Html.Raw(Json.Encode(TempData["Items"] as List<string>));

for (var item in itemsArray) {
//call your javascript method with param item
addItem(item);
}
})
</script>

C# foreach 循环的另一个选项

<script type="text/javascript">
$(function () {
@foreach (var item in (TempData["Items"] as List<string>))
{ //your javascript method with param item.
@:addItem(@item);
}
})
</script>

<script type="text/javascript">

$(function () {
var itemsArray = [];
@foreach (var item in (TempData["Items"] as List<string>))
{
@:itemsArray.push("@item");
}


for (var item in itemsArray) {
//call your javascript method with param item
addItem(item);
}
})


</script>

关于javascript - ASP.NET MVC5 从部分 View 调用 JavaScript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41483662/

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