动态字段-发布对象ASP NET MVC

时间:2018-09-24 15:31:30

标签: asp.net-mvc

我的模型

public class Person
{
    public int Id { get; set; }
    public string Name { get; set; }
}

我的控制器

public class PersonController : Controller
{
    // GET: Home
    public ActionResult Index()
    {
        return View();
    }
    [HttpPost]
    public ActionResult Save(Person[] people)
    {
        foreach (var p in people)
            // Do Something
        return View();
    }
}

我的视图

@using (Html.BeginForm("Save", "Person", FormMethod.Post))

{

<div id="form"></div>

<button type="button" class="btn btn-info" id="addItem">New Person</button>
<button type="submit" class="btn btn-success">Salvar</button>

}

我的脚本

<script type="text/javascript">

        $(document).ready(function () {
            $("#addItem").click(addField);
            addField(); 
        });

        function addField() {
            var html = "Name: <input type='text' name='people[]' />";
            $("#form").append(html);
        }
</script>

我需要将插入的数据从表单发布到控制器,但不起作用... 我该怎么办?

我读到有关绑定到模型数组的信息,而我在上面做了。

1 个答案:

答案 0 :(得分:0)

您可以使用Ajax,我们需要将您的Form从pOst更改为允许JQuery执行此操作 使用$('#Form')。Serialize()来获取所有数据,它应该转换为Person的C#列表 如果不起作用,请尝试手动创建对象并将其发布

 $.ajax({
            url: URL + 'Person/Save',
            type: 'POST',

            data:  $('#Form').Serialize()

            success: function (data) {
            },

            error: function (e, data) {
            }
        });