2012-06-01 2 views
0

У меня есть следующие разметки в ASP.NET MVC зрения (это окно Twitter Bootstrap поиска):Рефакторинг HTML Markup из POST в GET

<form action="@Url.Action("Results", "Search")" method="post"> 
    <input type="text" class="search-query" id="SearchTerm" name="SearchTerm" /> 
</form> 

Этот код работает, как ожидалось, но с использованием поста здесь вызывает проблемы.

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

+0

Если вы сделаете метод = "get", разве это не естественно передать значение searchterm в querystring? –

+0

Просто из любопытства, с какими проблемами вы сталкиваетесь при операции после операции? –

+0

@JonathanWood Вы должны изучить шаблон PRG. Post, Redirect, Get. Или вы всегда можете использовать POST с помощью AJAX. – Dismissile

ответ

1

Вы должны иметь возможность изменить method="post" на method="get" и получить желаемый результат. Форма, с настройкой метода get, толкает поля в форме к querystring по умолчанию.

В качестве временного решения, если поведение по умолчанию вас не устраивает, вы можете поймать представить событие формы и сделать:

window.location = form.action + "?SearchTerm=" + document.getElementById("SearchTerm").value 

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

+0

@JonathanWood Сделано, спасибо. –

+0

Да, это отлично работало и не требовало никаких дальнейших изменений. Благодарю. –