Asp .Net Mvc5表分页和回发数据

时间:2016-01-18 11:07:17

标签: asp.net-mvc paging

我正在尝试创建一个视图,其中使用模型类填充表,并创建复选框。我的问题是,当我尝试使用提交按钮发回数据时,当前的表格页面复选框数据被回发,任何其他数据都没有回发。 这是我的控制器代码

public ActionResult Index(string currentFilter, int? page)
{
  int pageSize = 3;
  int pageNumber = (page ?? 1);
  var people = from p in db.Peoples select p;
  people = people.OrderBy(x => x.Name);
  return View(people.ToPagedList(pageNumber, pageSize));

}
[HttpPost]

public ActionResult Create(PeopleDB peopleDb, string txtMessage, string[] selectedNames)
    {
        string num="";
        foreach (string nameID in selectedNames)
        {
            if (nameID != "false")
            {
                int uid = Int32.Parse(nameID);
                if (!num.IsNullOrWhiteSpace())
                    num = num + ","+ db.Peoples.Where(x => x.Id == uid).Select(x => x.PhoneNumber).FirstOrDefault().ToString();
            else
                {
                    num=db.Peoples.Where(x => x.Id == uid).Select(x => x.PhoneNumber).FirstOrDefault().ToString();
                }                   
            }
        }

这是我的观点

@using Start.Models
@using PagedList.Mvc;
@model PagedList.IPagedList<Start.Models.PeopleDB>
@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>

@using (Html.BeginForm("Create", "SendSms"))
{
    @Html.AntiForgeryToken()

    <div class="form-horizontal">

        <hr />
        @Html.ValidationSummary(true, "", new { @class = "text-danger" })
        <div class="form-group">
            @Html.Label("lblMessage","Message",htmlAttributes:new { @class = "control-label col-md-2" })

            <div class="col-md-10">

                @Html.TextArea("txtMessage",new{@maxlength="160" ,cols="55",rows="8"})
            </div>
    </div>
        <table class="table">
            <tr>
                <th>
                    Name
                </th>

                <th>
                    PhoneNumber
                </th>
                <th>
                   Send
                </th>
            </tr>

            @foreach (var item in Model)
            {
                <tr>
                    <td>
                        @Html.DisplayFor(modelItem => item.Name)
                    </td>

                    <td>
                        @Html.DisplayFor(modelItem => item.PhoneNumber)
                    </td>
                    <td>
                       @Html.CheckBox("selectedNames", new {@value = item.Id})
                    </td>
                </tr>
            }

        </table>

        <br />
        Page @(Model.PageCount < Model.PageNumber ? 0 : Model.PageNumber) of @Model.PageCount

        @Html.PagedListPager(Model, page => Url.Action("Index",
new { page, sortOrder = ViewBag.CurrentSort, currentFilter = ViewBag.CurrentFilter }))
        <div class="form-group">
        <div class="col-md-offset-2 col-md-10">
            <input type="submit" value="Send" class="btn btn-default" />
        </div>
    </div>
</div>
}

0 个答案:

没有答案