Получение нулевого значения в текстовом поле поиска - PullRequest
0 голосов
/ 03 декабря 2011

Я пытаюсь создать окно поиска для поиска счетов в базе данных. Код для поля поиска, как показано ниже:

@using (Ajax.BeginForm("Search", "Invoice", new AjaxOptions() { HttpMethod = "POST" })) 

{

    <% input id="search-field" name="search" type="text" value="" %/>

    <% input id="search-submit" name="search-submit" type="submit" value=""   %/>

}

public ActionResult Search(FormCollection collection)
{

        if (collection["search-field"] == null)
            return RedirectToAction("Index");
        else
        {
            string id = collection["search-field"].ToString();
            return RedirectToAction("Details", "Invoice", id.Trim());
        }
}

Теперь проблема в том, что я получаю только null значения для поиска контроллера.

Я использую MVC3 и .NET Framework 4.0

Я все еще не могу получить строковое значение при перехвате строки в следующем действии:

публичные подробности ActionResult (идентификатор строки) {

  if(string.IsNullOrEmpty(id))

  return RedirectToAction("Index"); ==============> Here

  ObjectParameter[] parameters = new ObjectParameter[3];

  parameters[0]= new ObjectParameter("CUSTNMBR", id);
  parameters[1] = new ObjectParameter("StartDate", System.DateTime.Now.Date.AddDays(-90));
  parameters[2] = new ObjectParameter("EndDate", System.DateTime.Now.Date);

  return View(_db.ExecuteFunction<Models.Invoices>("uspGetCustomerInvoices", parameters).ToList<Models.Invoices>());

}

1 Ответ

1 голос
/ 03 декабря 2011

Основная проблема заключается в том, что вы ищете FormCollection на основе id элементов input вместо их атрибута name.Попробуйте написать свой код следующим образом:

Вид:

@using (Ajax.BeginForm("Search", "Invoice", new AjaxOptions() { HttpMethod = "POST" })) 

{

    <input id="search-field" name="search" type="text" value="" />

    <input id="search-submit" name="search-submit" type="submit" />

}

Действие:

public ActionResult Search(string search)
{    
    if (string.IsNullOrEmpty(search))
        return RedirectToAction("Index");
    return RedirectToAction("Details", "Invoice", search.Trim());
}

Я изменил ваше действие, поэтому вам больше не нужно запрашивать FormCollection

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...