代码之家  ›  专栏  ›  技术社区  ›  Niranjan Godbole

MVC4中寻呼不工作

  •  0
  • Niranjan Godbole  · 技术社区  · 9 年前

    我正在设计一个页面,在这里我用分页显示一些细节。除分页外,页面工作正常。当我点击第二页时,什么也没发生。当前显示的所有数据也将被删除。当我点击第二页时,控件也不会转到我的操作方法。这是我的寻呼机代码。

      @Html.PagedListPager(Model.logDetails, page => Url.Action("Index",
                     new { page, currentFilter = ViewBag.CurrentFilter, filterdateTime=ViewBag.filterdateTimepageSize, }))
                    Page @(Model.logDetails.PageCount < Model.logDetails.PageNumber ? 0 : Model.logDetails.PageNumber) of @Model.logDetails.PageCount
    

    这是我的操作方法代码。

    [HttpPost]
            public ActionResult Index(int? clientId, DateTime? dateofAction,string typeofDocument,string employeeID,string citizenId,int? currentFilter,DateTime? filterdateTime,int? page)
            {
                DB_KYC3Entities db = new DB_KYC3Entities();
                ViewBag.docTypes = new SelectList(db.tm_doc_type, "doc_typeid", "doctype_name");
                if (clientId != null)
                {
                    page = 1;
                }
                else
                {
                    clientId = currentFilter;
                }
                if(dateofAction!=null)
                {
                    page = 1;
                }
                else
                {
                    dateofAction = filterdateTime;
                }
                ViewBag.CurrentFilter = clientId;
                ViewBag.filterdateTime = dateofAction;
                int pageSize = 8;
                int pageNumber = (page ?? 1);
                VerificationLogBAL obj = new VerificationLogBAL();
                int docType = obj.GetDocDetails(typeofDocument);
                List<logDetails> logDetails = obj.getlogDetails(clientId?? default(int), dateofAction?? DateTime.Now, docType, employeeID, citizenId);
                IPagedList<logDetails> pagedLog = logDetails.ToPagedList(pageNumber, pageSize);
                logDetailsEnumeration model = new logDetailsEnumeration();
                ViewBag.checkData = logDetails.Count;
                model = new logDetailsEnumeration()
                {
                    logDetails= pagedLog
                };
                return View("Index",model);
            }
    

    这是我的视图代码。

    <div class="forms">
        @using (Html.BeginForm("Index", "VerificationLog", FormMethod.Post))
        {
            @Html.AntiForgeryToken()
            @Html.ValidationSummary(true)
            <div class="message"></div>
    
            <div class="loginUsernamePassword">
                <i class="fa fa-user"></i>
                <table width="100%" border="0" cellspacing="0" cellpadding="0" class="dataTable tableHover">
                    <tr>
                        <th width="8%" scope="col">Client ID</th>
                        <th width="20%" scope="col">
                            <div class="form-box form-box-default">
                                @Html.TextBox("clientId", ViewBag.CurrentFilter as string, new { @id = "clientId", @placeholder = "Client ID", @class = "form-control", @maxlength = 20 })
    
                            </div>
                        </th>
                        <th width="10%" scope="col">Date Of Action</th>
                        <th width="20%" scope="col">
                            <div class="form-box form-box-default">
                                @Html.TextBox("dateofAction", ViewBag.filterdateTime as string, new { @id = "dateofAction", @placeholder = "Date Of Action", @class = "txtBox form-control calender validate[required]" })
                            </div>
                        </th>
                        <th width="15%" scope="col">Type Of Document</th>
                        <th width="17%" scope="col">
                            <div class="form-box form-box-default">
                                @*@Html.TextBox("typeofDocument", ViewBag.filterdateTime as string, new { @id = "typeofDocument", @placeholder = "Type Of Document", @class = "form-control", @maxlength = 20 })*@
                                @Html.DropDownList("docTypes",null,new {@id = "typeofDocument", @placeholder = "Type Of Document", @class = "form-control"})
                                                    </div>
                        </th>
                    </tr>
                    <tr>
                        <th width="15%" scope="col">Employee ID</th>
                        <th width="17%" scope="col">
                            <div class="form-box form-box-default">
                                @Html.TextBox("employeeID", ViewBag.filterdateTime as string, new { @id = "employeeID", @placeholder = "Employee ID", @class = "form-control", @maxlength = 20 })
    
                            </div>
                        </th>
                        <th width="15%" scope="col">Citizen ID</th>
                        <th width="17%" scope="col">
                            <div class="form-box form-box-default">
                                @Html.TextBox("citizenId", ViewBag.filterdateTime as string, new { @id = "citizenId", @placeholder = "Citizen ID", @class = "form-control", @maxlength = 20 })
    
    
                            </div>
                        </th>
                        <th width="10%" scope="col" colspan="2">
                            <input type="submit" value="Search" class="btn btn-primary btn-cons search" />
                    </tr>
                </table>
    
                </div>
                }
    
            </div>
      @if (Model != null && Model.logDetails.Count != 0)
            {
                <br />
                <h2>Verification Log</h2>
                <br />
                <div id="GridDetails">
                    <table width="100%" border="0" cellspacing="0" cellpadding="0" class="dataTable tableHover">
                        <tr>
                            <th>Label</th>
                            <th>Value</th>
                            <th>UpdatedOn</th>
                            <th>UpdatedBy</th>
                            <th>UpdatedStatus</th>
                            <th>RejectComment</th>
                        </tr>
                        @foreach (var group in Model.logDetails)
                        {
                            <tr>
                                <td>@group.contentLabel</td>
                                <td>@group.contentValue</td>
                                <td>@group.updatedOn</td>
                                <td>@group.updatedBy</td>
                                <td>@group.updatedStatus</td>
                                <td>@group.rejectComment</td>
                            </tr>
    
                        }
                    </table>
    
    
       [HttpGet]
    public ActionResult Index()
    {
        DB_KYC3Entities db = new DB_KYC3Entities();
        ViewBag.docTypes = new SelectList(db.tm_doc_type, "doc_typeid", "doctype_name");
        return View();
    }
    

    当我单击第二页时,控件也不会转到我的索引方法。我还有5个文本框,所以我需要在viewbag中保留所有5个文本盒值吗?有人能告诉我吗?提前谢谢

    1 回复  |  直到 9 年前
        1
  •  0
  •   user3559349 user3559349    9 年前

    PagedListPager 进行GET调用,而不是POST,因此您需要删除 [HttpPost] 属性 Index() 方法与此相关的是,您需要更改表单,以生成GET

    @using (Html.BeginForm("Index", "VerificationLog", FormMethod.Get))
    

    是的,你需要 保留viewbag中的所有5个文本框值 Url.Action() 以同样的方式添加 currentFilter filterdateTime