c# - ASP.NET Core 如何将 List<int> 从 View 传递到 Controller

标签 c# asp.net

在 ASP.NET Core 中,我四处搜索但无法弄清楚如何将列表从 View 传递到 Controller 。我可以创建一个 form并传递一个 int值,但不是 List<int> .这是我必须传递的单个值

<form id="myForm">
    <div class="modal-body">
        <div class="form-group">
           <label class="custom-label">
           <div class="col-sm-3">
               <input name="singleValue" type="text" class="form-control" />
           </div>
        </div>
        <a href="#" class="btn btn-success" onclick="SaveForm('UpdateFunction', 'ControllerName')">Update</a>
</form>

我的 Controller 是

public IActionResult UpdateFunction(int singleValue)
{
    var model = _context.TableName.SingleOrDefault(f => f.Id == singleValue);
    model.Name = "Whatever";
    _context.Update(model);
    _context.SaveChanges();

    return Json(true);
}

但是因为我想一次更新多个值而不仅仅是 int singleValue , 我试过了

public IActionResult UpdateFunction(int[] list)要么 public IActionResult UpdateFunction(List<int> list)

进入函数参数。我试过输入多个 int带/不带逗号、括号的文本框中的值,没有任何作用,列表总是空的。我的目标是将列表或数组传递给 Controller ​​,然后循环遍历列表中的值。我的问题是如何传递 List<int>到 Controller ?

最佳答案

以下是您的几个选项:

  1. 如果您有多个文本输入来从用户那里获取多个数字,那么您可以使用像 HttpContext.Request.Form[<FieldName>] 这样的表单对象来访问这些数字。 .

  2. 您可以在单个文本框中获取多个值,并用逗号或空格分隔这些值。验证会很痛苦,但您可以获取字符串,将其切入 Controller 并使用它。

    public IActionResult UpdateFunction(string multipleValues)
    {
           var ints = multipleValues.Split(new[] { ",", " " }, StringSplitOptions.RemoveEmptyEntries);
    }
    
  3. 使用自定义对象传回值。但是您必须在客户端创建 json 对象并使用 AJAX(jQuery?)回发。

    public class ListOfInts
    {
           List<int> Ids{get;set;}
    }
    

在 View 中:

   <script>
          $(function(){
                 $("#btn").click(function(){
                        var o={};
                        o.Ids = [<get values from inputs and];
                        $.ajax({....});
                 });
          });
   </script>

所有这些都需要一些工作才能实际实现(我需要一杯咖啡),但这会给你一个想法。

关于c# - ASP.NET Core 如何将 List<int> 从 View 传递到 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62523590/

相关文章:

html - 检查 asp.net 应用程序中的单选按钮

c# - 使用自定义 WebApi Controller 的问题

c# - EWS 异常 : "Connection failed. Try later."

javascript - 将自定义脚本添加到 ScriptManager?

c# - 如何使用 LINQ 对对象集合进行简单的基于顺序的验证?

javascript - 为什么在 asp.net 按钮中调用 __doPostback?

c# - 以编程方式添加 span 标记,而不是 Label 控件?

c# - Assert.AreEquals 调用 object.Equals,无论 IEquatable 实现如何

c# - 如何从字符串中提取字符范围

c# - Lidgren 第二次创建服务器实例导致 System.Net.Sockets.SocketException