2012-06-01 2 views
0

내가해야하는 ASP.NET MVC보기에서 다음과 같은 마크 업 (이것은 Twitter Bootstrap 검색 박스) :리팩토링 HTML 마크 업하려면

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

이 코드는 예상하지만, 여기 게시물을 사용으로 작동 문제를 일으키고 있습니다.

대신 URL 인수로 검색 쿼리를 전달하도록이 마크 업을 변경할 수 있습니까? 나는 기존의 마크 업을 유지 한 다음 컨트롤러에서 리디렉션하는 방법에 대해서도 어떻게 접근해야하는지 잘 모르겠습니다. 그보다 효율적인 방법이 있어야한다고 생각합니다.

+0

method = "get"으로 설정하면 자연히 쿼리 문자열에 searchterm 값이 전달되지 않습니까? –

+0

호기심에서 벗어나 사후 작업으로 어떤 문제가 발생합니까? –

+0

@JonathanWood PRG 패턴을 조사해야합니다. 게시, 리디렉션, 가져 오기. 아니면 항상 AJAX를 사용하여 POST 할 수 있습니다. – Dismissile

답변

1

method="post"method="get"으로 변경하고 원하는 결과를 얻을 수 있어야합니다. get 메소드 설정을 사용하여 양식은 기본 동작에 따라 폼의 필드를 쿼리 문자열로 푸시합니다. 해결 방법으로

, 기본 동작을 맞게하지 않는 경우, 당신은이 형태의 이벤트를 제출 잡기, 그리고 할 수있는 : 양식은 양식에 대한 참조입니다 같은

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

뭔가를, 요소. get request 인 자바 스크립트를 사용하여 링크를 만들고 리디렉션 할 수 있습니다.

+0

@JonathanWood, 감사합니다. –

+0

예,이 작업은 완벽하게 수행되었으므로 더 이상 변경하지 않아도됩니다. 감사. –