Как передать значение текстового поля в строку запроса в asp.net mvc - PullRequest
3 голосов
/ 25 июня 2009

Еще один новичок с ASP.NET MVC! Все, что я собираюсь сделать, - это найти текстовое поле поиска на моей странице. Если я что-то наберу и нажму кнопку поиска, URL-адрес, на который нужно перенаправить сообщение, должен иметь в конце следующее, как в stackoverflow,

/search?q=searchedtext

Так вот, что у меня сейчас,

<input id="searchText" maxlength="100" type="text" name="query" />
    <a href="???"  class="searchButton">        
        Search        
    </a>

У меня в контроллере есть такая функция,

public ActionResult Search(string query)
 {

 }

Вот маршрут,

routes.MapRoute(
            "Search",                                            
            "Search",                          
            new { controller = "Posts", action = "Search"} 
        );

Может кто-нибудь заполнить пробелы здесь :). Любые комментарии приветствуются.

Ответы [ 3 ]

4 голосов
/ 25 июня 2009

Вам нужно обернуть этот код на стороне клиента в форму:

<form action="/Search" method="get">
   <input id="q" name="q" maxlength="100" type="text" />
   <input type="submit" id="submit" value="Search" />
</form>
2 голосов
/ 25 июня 2009

Оберните его тегом формы, установите для его метода значение «GET», используйте тип ввода = «отправить» для отправки формы (вместо тега «а»), введите текстовый ввод имени в качестве запроса (уже сделано), примите запрос в виде строки в параметрах (уже выполнено) вызовите модель из контроллера для обработки запроса, обновите ViewData.Model, верните соответствующий результат просмотра (частичный, если используется AJAX).

Если вы хотите передать запрос через URL, а не через ключ / значения строки запроса,
для этого необходимо указать правильный маршрут .

Я думаю, это было бы что-то вроде:

routes.MapRoute(  
            "Search", // Route name  
            "search/{query}", // URL with parameters  
            new 
              { controller = "search", action = "search"}  // Parameter defaults
        );
0 голосов
/ 04 августа 2009

вот что я сделал:

<% Html.BeginForm("Search", "controller name", FormMethod.Get); %>
        <input id="criteria" name="criteria" maxlength="120" type="text" style="width:120px; " />
        <input type="image" alt="search" />
    <% Html.EndForm(); %>

public ActionResult Search(string criteria)
    {
       //search code goes here
    }
...