【问题标题】:How build array in javascript and receive it in c# mvc controller如何在javascript中构建数组并在c#mvc控制器中接收它
【发布时间】:2019-01-04 09:58:34
【问题描述】:

可以在 jquery/javascript 中构建一个数组以将其发送到我的控制器 c# 吗?

我从多个选择中获得了一份雇员名单,我可以这样提醒他们:

    <div class="demo">
        <select style="display:none" id="liste" multiple="" placeholder="Select">
            @foreach (var employe in ViewBag.Employes)
            {
            <option value="@employe.ID_Employe">@employe.Name</option>
            }
        </select>
    </div>

    <a class="btn btn-default" id="check" href="#">Suivant</a>

我的脚本:

        $('#check').on('click', function () {
            $("#liste").find("option:selected").each(function () { alert($(this).text()); });
        });

我这样发送数据:

        $.ajax({
            type: 'POST',
            dataType: 'json',
            url: '/MyAjaxRoute',
            data: { arraytosend: arraybuildInJS },
            success: function (response) {
                if (response.success) {
                    alert('yes');
                }
        },
  • 您能解释一下如何在 js 中创建一个数组并在 c# mvc 控制器中接收它吗?

【问题讨论】:

标签: javascript c# json asp.net-mvc


【解决方案1】:

首先在你的控制器中创建一个动作:

public JsonResult SaveArrayData(List<string> myData)
{
   if(myData.Count == 0) return Json(new {success = false});

   //do something with myData
   return Json(new {success = true});
}

然后在你的 js 代码中你可以执行以下操作:

var array = [];
$('#check').on('click', function () {

$("#liste").find("option:selected").each(function () {
    array.push($(this).text)
});

$.ajax({
     type: 'POST',
     dataType: 'json',
     url: '@Url.Action("SaveArrayData", "MyController")',
     data: { myData: array },
     success: function (response) {
       if (response.success) {
          array = [];//empty the array you can also use array.length = 0
          alert('yes');
       }          
     }
   });
});

【讨论】:

    【解决方案2】:

    我猜push 就是你要找的。​​p>

    var arraybuildInJS = [];
    $('#check').on('click', function () {
                $("#liste").find("option:selected").each(function () { arraybuildInJS.push($(this).text()); });
            });
    

    请记住,您应该期望控制器中有一个 Enumerable 字符串。由于您不对其进行编码,因此请尝试匹配对象。

    【讨论】:

      【解决方案3】:

      感谢您的回答,我可以成功发送我的数据,但我找不到在我的 c# 控制器中解析它的方法

      public ActionResult GetAjaxSession(string searchequipe)
          {
              if (searchequipe != null)
              {
                  var equipe_decode = HttpUtility.UrlDecode(searchequipe);
      
      // how to parse my json variable : searchequipe ? 
      
                  return Json(new { success = true }, JsonRequestBehavior.AllowGet);
              }
      
              return null;
      
      
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-03-19
        • 2016-12-21
        • 2014-10-18
        • 1970-01-01
        • 1970-01-01
        • 2020-01-08
        • 1970-01-01
        相关资源
        最近更新 更多