【发布时间】:2020-01-05 04:45:57
【问题描述】:
我正在使用带有视图的 ASP.NET MVC。
这是一个两部分的问题。
我有一个返回数字数组的 C# 方法。然后将这些值发送到计算和创建随机数的 javascript 函数。
我将值从 C# 传递到 javascript 的方式是通过ViewData["Array"]。
Question 1:如何将 javascript 值传递回 C# 方法?
Question 2:我怎样才能成功调用calculateNumbers()
javascript函数自动将值发送回C#?
因此,对于它计算的每个数字,它会将值传递回 C# 方法,而无需使用按钮 onclick 调用它。
C#方法
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>
【问题讨论】:
-
ViewData 不能用于 calculateNumbers 吗?
-
是的,将值从 C# 传递到 Javascript 时,ViewData 工作正常。
-
所以,value 等价于 { 10, 20, 30, 40, 50, 60, 70 }。 1和任何值之间的随机数是什么意思?数组的任何值?
标签: javascript c# asp.net-mvc view parameter-passing