簡體   English   中英

如何將View中的Javascript值傳遞給C#方法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM