开发者

how to Post list using ajax

My problem here is how to send the list values to the controller upon an ajax post. With my actual code, the list is null on post.

My view:

    @using (Html.BeginForm("UsersList", "Project", FormMethod.Post, new { id = "Users" }))
{
     <div id="MyList" >
        <table>
        <thead>
        <tr><th></th><th>User</th><th>End date</th></tr>
        </thead>

    @Html.EditorFor(x => x.GetUsers)
       </table>
           </div> 

       <script type="text/javascript">
        $(function () {
            $('#MyList).dialog({
                autoOpen: false,
                width: 820,
                buttons: {
                    "Save": function () {
                        $("#Users").submit();
                    },

                    "Cancel": function () {
                        $(this).dialog("close");
                    }
                }
            });
    </script>

Model:

public class ProjectModel
    {

        public List<ProjectList>GetUsers{get;set;}

        }

  public class ProjectList
    {
        public bool Selected { get; set; }
        public int UserID { get; set; }

}

My controller:

[HttpPo开发者_开发知识库st]
        public ActionResult UsersList(ProjectModel model)
        {
             return View(model);
        }


Sending a list can be difficult. I think MVC 3.0 has (in-built) support for sending JSON to the controller which would make this easier.

However with prior versions I think this article should be what your looking for: http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx

Effectively you give everything in the list the same name in your HTML (as the name will be what gets sent in the key/value string that gets sent and it will bind as a list.

For more complex items you name each object property but add an index to show which object they get attached too:

<form method="post" action="/Home/Create">

<input type="text" name="[0].Title" value="Curious George" />
<input type="text" name="[0].Author" value="H.A. Rey" />
<input type="text" name="[0].DatePublished" value="2/23/1973" />

<input type="text" name="[1].Title" value="Code Complete" />
<input type="text" name="[1].Author" value="Steve McConnell" />
<input type="text" name="[1].DatePublished" value="6/9/2004" />

<input type="text" name="[2].Title" value="The Two Towers" />
<input type="text" name="[2].Author" value="JRR Tolkien" />
<input type="text" name="[2].DatePublished" value="6/1/2005" />

<input type="submit" />

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜