Несколько текстовых полей, используемых для фильтрации / поиска в MVC C # - PullRequest
0 голосов
/ 21 января 2010

Я пытаюсь создать форму в MVC C #, которая позволит пользователю ввести фамилию, имя, отдел, год и нажать кнопку «Поиск», которая вернет список сотрудников на основе введенных критериев поиска.

Моя проблема заключается в разрешении нескольких критериев текстового поля поиска в одной кнопке поиска.

Я могу жестко закодировать значения в HTML-ссылку action, как показано ниже, и она работает, но не может получить значения из текстовых полей.

<%= Html.ActionLink("Results", "Results", new { lastName = "Smith", 
    firstName = "", dept = "", year = "2008" } )%>

Мне бы очень хотелось иметь четыре текстовых поля и кнопку поиска, чтобы вернуть список из базы данных.

Спасибо за помощь.

Ответы [ 3 ]

2 голосов
/ 22 января 2010

На вашей странице Index.aspx

<% using (Html.BeginForm()) { %>

   <%= Html.TextBox("firstname") %>
   <%= Html.TextBox("lastname") %>

   <input id="submit1" type="submit" value="Submit" />

<% } %>

Это позволит опубликовать значения полей формы «имя» и «фамилия», и вы получите их в своем действии, как в примере @ Trimack.

Вы можете перенести опубликованные данные на страницу результатов с помощью TempData.

TempData["firstName"] = firstname;

На вашей странице results.aspx будет:

<%= Html.Hidden("firstname", TempData["firstName"]) %>
1 голос
/ 22 января 2010

Если у вас есть это в форме, вы можете поймать отправку этого вместе со значениями для каждого текстового поля (или любого другого тега в форме).

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Results(string lastName, string firstName, string dept, int year)

Этот метод перегружает результаты и запускается только по запросу POST.

0 голосов
/ 21 января 2010

Я думаю, что вам нужно использовать форму и кнопку отправки, тогда вы получите значения всех полей ввода в форме, вы можете сделать это с помощью ajax, чтобы он не обновлял всю страницу.

Если вам не нужно решение для формы, вы можете использовать некоторый javascript (хорошо подходит jquery), чтобы обнаружить изменение значения текстовых полей, а затем получить значение текстовых полей и сделать вызов ajax в контроллер, отправив эти значения.

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