gpt4 book ai didi

javascript - 如何将位于 View 中的 Javascript 值传递给 C# 方法

转载 作者:太空宇宙 更新时间:2023-11-03 22:31:08 25 4
gpt4 key购买 nike

我正在使用带 View 的 ASP.NET MVC。

这是一个由两部分组成的问题。

我有一个返回数字数组的 C# 方法。然后将这些值发送到计算和创建随机数的 javascript 函数。我将值从 C# 传递到 javascript 的方式是通过 ViewData["Array"]

问题 1:如何将 javascript 值传回 C# 方法?

问题 2: 我怎样才能成功调用 calculateNumbers()javascript函数自动将值发送回C#?因此,对于它计算的每个数字,它会将值传递回 C# 方法,而无需使用按钮 onclick 调用它。

C# Method

      public ActionResult Index()
{
int[] num_array = { 10, 20, 30, 40, 50, 60, 70 };

foreach (var numb in num_array)
{
ViewData["Array"] = numb;
}

return View();
}

//values returned from javascript function
//is saved in db
public IActionResult SaveResult()
{
RandomNumbTable rand = new RandomNumbTable();
rand.Number = //value from javascript;
_context.Add(rand);
_context.SaveChanges();

return Ok();
}

.cshtml

<script>
function calculateNumbers()
{
var value = @ViewData["Array"];

if (value != undefined)
{
//random numbers between 1 and whatever value is
var randomNumbers = Math.floor((Math.random() * value) + 1);

//I want to grab this value and pass it to the C#
//SaveResult() method
}
}
</script>

最佳答案

使用此方法将值传递给 C# SaveResult 方法:

$.ajax({
url: '/ControllerName/SaveResult',
type: 'POST',
data: {rn : randomNumbers}
}).done(function (t) {
//--
});

和:

public IActionResult SaveResult(yourType rn)
{
RandomNumbTable rand = new RandomNumbTable();
rand.Number = rn;
_context.Add(rand);
_context.SaveChanges();

return Ok();
}

您可以根据需要在任何地方调用 calculateNumbers(),例如 document.ready()。

关于javascript - 如何将位于 View 中的 Javascript 值传递给 C# 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57751990/

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