[英]How to pass Javascript values located in Views to C# method
我正在使用帶有Views的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>
將此值用於傳遞值到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();
}
您可以根據您的要求調用calculateNready(),例如document.ready()。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.