Member 14908411 Ответов: 1

Как я могу получить значения ничья, продолжительность, старт из коллекции форм с 2-х формах


Я занимаюсь разработкой одного приложения в asp.net в MVC. У меня есть панель вкладок на моем представлении, в которой я связываю две таблицы данных jquery, используя разбиение на страницы на стороне сервера на каждой вкладке. У меня есть пользовательские панели поиска над каждой таблицей данных. эти панели поиска имеют тег формы и одну кнопку поиска. Всякий раз , когда я нажимаю на кнопку поиска с первой вкладки, я получаю значения из
Request.Form.GetValues("draw").FirstOrDefault()
, Но когда я нажимаю кнопку поиска на второй форме, я не могу получить draw, length и start значения datatable.

Вот моя первая вкладка форма панели поиска
@using (Html.BeginForm("SearchFilter", "Store", FormMethod.Post))
                                      {

                                          <div class="row">
                                              <div class="col-lg-3">
                                                  <label>Search</label>
                                                  <div class="form-group">
                                                      @Html.TextBoxFor(model => model.SearchPanel.SearchText, new { @class = "form-control" })
                                                  </div>
                                              </div>
                                              <div class="col-lg-3">
                                                  <label>Brand</label>
                                                  <div class="form-group">
                                                      @Html.ListBoxFor(model => model.SearchPanel.BrandSelected, new SelectList(Model.SearchPanel.Brands, "Id", "Name"), new { htmlAttributes = new { @class = "form-control" } })
                                                  </div>
                                              </div>
                                              <div class="col-lg-4">
                                                  <label>City</label>
                                                  <div class="form-group">
                                                      @Html.ListBoxFor(model => model.SearchPanel.CitySelected, new SelectList(Model.SearchPanel.Cities, "Id", "Name"), new { @class = "form-control" })
                                                  </div>
                                              </div>

                                              <div class="col-lg-2">
                                                  <button id="btnSearch" type="submit" class="btn btn-info btnshadow">Search</button>
                                              </div>

                                          </div>
                                      }


и вот мой второй вкладке на панели поиска

<div class="row">
    <div class="col-lg-3">
        <label>Search</label>
        <div class="form-group">
            @Html.TextBoxFor(model => model.SearchPanelMaster.SearchText,  new { @class = "form-control", id = "SearchTextMaster" })
        </div>
    </div>
    <div class="col-lg-3">
        <label>Brand</label>
        <div class="form-group">
            @Html.ListBoxFor(model => model.SearchPanelMaster.BrandSelected, new SelectList(Model.SearchPanelMaster.Brands, "Id", "Name"), new { @class = "form-control", id = "BrandSelectedMaster" })
        </div>
    </div>
    <div class="col-lg-4">
        <label>City</label>
        <div class="form-group">
            @Html.ListBoxFor(model => model.SearchPanelMaster.CitySelected, new SelectList(Model.SearchPanelMaster.Cities, "Id", "Name"), new { @class = "form-control", id = "CitySelectedMaster" })
        </div>
    </div>

    <div class="col-lg-2">
        <button id="btnSearchMaster" type="submit" class="btn btn-info btnshadow">Search</button>
    </div>

</div>
}

В контроллере у меня есть,
[HttpPost]

       public ActionResult SearchFilter(StoreListViewModel model)
       {
           if (Session["AccessInfo"] == null)
           {
               return RedirectToAction("SessionTimeOut", "Home");
           }
           ViewBag.Tab = "";
           TempData["Query"] = model;
           TempData.Keep();

           model.SearchPanel.Cities = new SellerBl().GetCities();
           model.SearchPanel.Brands = new BrandBl().GetBrands(Constants.Status.Active);
           model.SearchPanelMaster.Cities = new SellerBl().GetCities();
           model.SearchPanelMaster.Brands = new BrandBl().GetBrands(Constants.Status.Active);
           ViewBag.Success = false;
           return View("StoreList", model);
       }
       public ActionResult SearchFilterMaster(StoreListViewModel model)
       {
           if (Session["AccessInfo"] == null)
           {
               return RedirectToAction("SessionTimeOut", "Home");
           }
           ViewBag.Tab = "";
           TempData["QueryMaster"] = model;
           TempData.Keep();

           model.SearchPanel.Cities = new SellerBl().GetCities();
           model.SearchPanel.Brands = new BrandBl().GetBrands(Constants.Status.Active);
           model.SearchPanelMaster.Cities = new SellerBl().GetCities();
           model.SearchPanelMaster.Brands = new BrandBl().GetBrands(Constants.Status.Active);
           ViewBag.Success = false;
           return View("StoreList", model);
       }

[HttpPost]
        public ActionResult LoadMasterData()
        {
            ViewBag.Tab = "";
            var draw = Request.Form.GetValues("draw").FirstOrDefault();
            var length = Request.Form.GetValues("length").FirstOrDefault();
            var start = Request.Form.GetValues("start").FirstOrDefault();
          //  string searchby = Request.Form.GetValues("search[value]").FirstOrDefault();

            int pageSize = length != null ? Convert.ToInt32(length) : 0;
            int skip = start != null ? Convert.ToInt16(start) : 0;
            int pageNo = skip == 0 ? 1 : (skip / pageSize) + 1;
            var stores = new EPagination<StoreViewModel>();
            var model = new StoreListViewModel();
            if (TempData["QueryMaster"] != null)
            {
                model = (StoreListViewModel)TempData["QueryMaster"];
            }
            ESearchRequest request = new ESearchRequest()
            {
                ItemCount = pageSize,
                Name = model.SearchPanelMaster.SearchText != null ? model.SearchPanelMaster.SearchText : "",
                PageNumber = pageNo,
                BrandIds = model.SearchPanelMaster.BrandSelected != null ? model.SearchPanelMaster.BrandSelected.ToList() : null,
                CityIds = model.SearchPanelMaster.CitySelected != null ? model.SearchPanelMaster.CitySelected.ToList() : null
            };
            try
            {

                UserProfileViewModel userProfile = (UserProfileViewModel)System.Web.HttpContext.Current.Session["UserProfile"];

                if (userProfile.Roles.Any(r => r.RoleName.Equals(Role.OperationAdmin)))
                {
                    stores = storeBl.GetStores(Constants.Status.Pending, request);
                }
                else if (userProfile.Roles.Any(r => r.RoleName.Equals(Role.Operation)))
                {
                    stores = storeBl.GetStores(Constants.Status.All, request);
                }
                else if (userProfile.Roles.Any(r => r.RoleName.Equals(Role.Viewer)))
                {
                    stores = storeBl.GetStores(Constants.Status.All, request);
                }
                var data = stores.PageData; //approvalStores.OrderBy(x => x.Status).Skip(skip).Take(pageSize);
                return Json(new { draw, recordsFiltered = stores.TotalRecords, recordsTotal = stores.TotalRecords, data }, JsonRequestBehavior.AllowGet);
            }
            catch (Exception ex)
            {
                throw ex;
            }

        }

[HttpPost]
       public ActionResult LoadData()
       {
           ViewBag.Tab = "";
           var draw = Request.Form.GetValues("draw").FirstOrDefault();
           var length = Request.Form.GetValues("length").FirstOrDefault();
           var start = Request.Form.GetValues("start").FirstOrDefault();
          // string searchby = Request.Form.GetValues("search[value]").FirstOrDefault();

           int pageSize = length != null ? Convert.ToInt32(length) : 0;
           int skip = start != null ? Convert.ToInt16(start) : 0;
           int pageNo = skip == 0 ? 1 : (skip / pageSize) + 1;
           var approvalStores = new EPagination<ApprovalStoreViewModel>();
           var model = new StoreListViewModel();
           if (TempData["Query"] != null)
           {
               model = (StoreListViewModel)TempData["Query"];
           }
           ESearchRequest request = new ESearchRequest()
           {
               ItemCount = pageSize,
               Name = model.SearchPanel.SearchText !=null?  model.SearchPanel.SearchText : "",
               PageNumber = pageNo,
               BrandIds = model.SearchPanel.BrandSelected != null ? model.SearchPanel.BrandSelected.ToList() : null,
               CityIds = model.SearchPanel.CitySelected != null ? model.SearchPanel.CitySelected.ToList() : null
           };
           try
           {

               UserProfileViewModel userProfile = (UserProfileViewModel)System.Web.HttpContext.Current.Session["UserProfile"];

               if (userProfile.Roles.Any(r => r.RoleName.Equals(Role.OperationAdmin)))
               {
                   approvalStores = storeBl.GetApprovalStores(Constants.Status.Pending, request);
               }
               else if (userProfile.Roles.Any(r => r.RoleName.Equals(Role.Operation)))
               {
                   approvalStores = storeBl.GetApprovalStores(Constants.Status.All, request);
               }
               else if (userProfile.Roles.Any(r => r.RoleName.Equals(Role.Viewer)))
               {
                   approvalStores = storeBl.GetApprovalStores(Constants.Status.All, request);
               }
               var data = approvalStores.PageData; //approvalStores.OrderBy(x => x.Status).Skip(skip).Take(pageSize);
               return Json(new { draw, recordsFiltered = approvalStores.TotalRecords, recordsTotal = approvalStores.TotalRecords, data }, JsonRequestBehavior.AllowGet);
           }
           catch (Exception ex)
           {
               throw ex;
           }

       }


всякий раз, когда я нажимаю на вторую кнопку поиска панели поиска, я не получаю
var draw = Request.Form.GetValues("draw").FirstOrDefault();
          var length = Request.Form.GetValues("length").FirstOrDefault();
          var start = Request.Form.GetValues("start").FirstOrDefault();

такие ценности

Что я уже пробовал:

Я не знаю, почему это происходит, Должен ли я удалить панель вкладок или сделать что-то еще

1 Ответов

Рейтинг:
1

Richard Deeming

Форма, которую вы показали, не содержит полей для draw, length, или start.

Другой тег формы, похоже, отсутствует в вашем вопросе.

Но имейте в виду, что при отправке формы на сервер будут отправляться только поля, содержащиеся в этой форме. Если вы хотите, чтобы поля с обеих вкладок отправлялись одновременно, они должны находиться в одной форме.


Member 14908411

Привет Ричард, я привязываю jquery datatable при загрузке страницы, и эта форма предназначена только для фильтра поиска. Таблица, которую я привязываю, находится вне этого тега формы, а draw, length и start-это поля из этой таблицы данных jquery. Хотя это находится вне формы, все же я получаю эти поля при обратной передаче с первой вкладки кнопки поиска. Но когда я нажимаю вторую вкладку поиска, она не работает.
$('#firstTabGrid').DataTable({
"обработка": верно,
"дом": "лртип",
"язык": {
sLoadingRecords: ''
},
"серверная сторона": верно,
"Аякс": {
"URL-адрес": '@URL-адрес.Действий("Метод LoadData", "Магазин")',
"тип": "сообщение",
"тип данных": "json"
},
"columnDefs": [
{
"цели": [ 0 ], //первая колонка
"видимая": @(профиль_пользователя.Роли.Any(r => r.RoleName.Equals(Role.OperationAdmin)) ? "true" : "false"),
'заказано': ложь
},
{
"цели": [ 22 ],
"cellClass": функция (параметры) { вернуть (параметр params.значение == 'в ожидании' ? 'знак-предупреждение : параметр params.значение == 'утвержден' ? "значок-успех" :"значок-опасность"); }

}
,
{
"цели": [ 23 ],
"видимая": @(профиль_пользователя.Роли.Any(r => r.RoleName.Equals(Role.Операция)) ? "true" : "false")
}
,
{
- цели': [3, 6, 8, 10, 14, 16, 20, 22, 23, 24],
'createdCell': функция (td, cellData, rowData, row, col) {
$(td).attr('id', 'noExl');
}
}

],
"колонки": [
{
"данные": функция (источник, тип, val) {


вернуть '';

}
},
{ "data": "Id", className: "скрыть"},
{ "данные": "имя", },
{ "data": "фирменное наименование" },
{ "data": "BrandName" ,className: "скрыть"},
{ "описание данных" },

{ "data": "CityName"},
{ "data": "CityName", className: "скрыть"},
{ "данные": "Адрес1" },
{ "data": "Address1", className: "скрыть" },
{ "данные": "Адрес2"},
{ "data": "Address2", className: "скрыть" },
{ "data": "долгота", className: "скрыть" },
{ "данные": "Латит