首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

将动态添加的html表行作为参数发布到控制器- ASP.NET核心/MVC

将动态添加的HTML表行作为参数发布到控制器是ASP.NET核心/MVC中的一个常见需求,可以通过以下步骤实现:

  1. 在前端页面中使用JavaScript或jQuery动态添加HTML表行。这可以通过创建一个包含所需表行元素的HTML字符串,并使用JavaScript的appendChild()或jQuery的append()方法将其添加到表格中。
  2. 在前端页面中创建一个表单,将需要传递给控制器的数据作为表单的输入元素。这可以通过创建适当的表单字段(如文本框、隐藏字段等)来实现。确保为每个动态添加的表行设置正确的name属性,以便在提交表单时可以正确地将数据传递到控制器。
  3. 在控制器中创建一个接收表单数据的动作方法。在ASP.NET核心/MVC中,可以使用模型绑定机制将表单数据绑定到一个模型对象上。在动作方法的参数列表中添加一个与表单字段对应的参数,并使用合适的模型绑定特性(如[FromBody]、[FromForm]等)将表单数据绑定到该参数上。
  4. 在动作方法中对接收到的表单数据进行处理。根据业务需求,可以将数据存储到数据库、发送到其他系统等。

以下是一个示例代码:

前端页面:

代码语言:txt
复制
<table id="myTable">
  <tr>
    <th>Name</th>
    <th>Age</th>
  </tr>
</table>

<button onclick="addRow()">Add Row</button>
<form action="/controller/action" method="post" id="myForm">
  <input type="submit" value="Submit">
</form>

<script>
function addRow() {
  var table = document.getElementById("myTable");
  var row = table.insertRow(table.rows.length);
  var cell1 = row.insertCell(0);
  var cell2 = row.insertCell(1);
  cell1.innerHTML = "<input type='text' name='name'>";
  cell2.innerHTML = "<input type='text' name='age'>";
}

document.getElementById("myForm").addEventListener("submit", function(e) {
  e.preventDefault(); // Prevent form submission
  var formData = new FormData(this); // Get form data
  fetch("/controller/action", {
    method: "POST",
    body: formData
  }).then(function(response) {
    // Handle response
  });
});
</script>

控制器:

代码语言:txt
复制
[HttpPost]
public IActionResult Action([FromForm]List<PersonModel> persons)
{
    // Handle submitted data
    foreach (var person in persons)
    {
        // Process each person
        // ...
    }
    return RedirectToAction("Index");
}

public class PersonModel
{
    public string Name { get; set; }
    public int Age { get; set; }
}

在这个示例中,我们通过JavaScript动态添加表行,并使用FormData对象收集表单数据。然后,我们将表单数据通过fetch函数发送到控制器的动作方法,并使用[FromForm]特性将表单数据绑定到名为"persons"的List<PersonModel>参数上。

对于这个示例,你可以根据具体的业务需求进行适当的修改和扩展。对于ASP.NET核心/MVC中的其他概念和名词,你可以参考官方文档或搜索引擎进行进一步了解和学习。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券