나는 ASP.NET을 사용하여 ADN 내보기에 다음 코드가 있어요 :HTTP-get에서 양식 값 가져 오기?
<% using(Html.BeginForm("Search", "Home", FormMethod.Get)) { %>
<%= Html.TextBox("searchText") %>
<input type="submit" value="Search" />
<% } %>
을 내 컨트롤러에서 나는이 : 나는 검색 액션에 중단 점을 경우
public ActionResult Search(string searchText)
{
return View("Index");
}
및 textTextbox에 텍스트를 입력하더라도 항상 searchText 인수를 검사하십시오. formmethod를 POST로 변경하면 예상대로 작동합니다.
http-GET을 사용할 때 어떻게 "searchText"를 읽을 수 있습니까?
편집 :
나는 다음과 같은 경로
routes.MapRoute(
"Search", // Route name
"Search/{searchText}", // URL with parameters
new { controller = "Home", action = "Search", searchText ="" } // Parameter defaults
);
을했고 내가 검색 텍스트의 디폴트 값 (searchValue = "")를 제거 할 때, 나는 내 행동에 올바른 값을 얻었다. 왜?
global.asax에서 기본이 아닌 라우팅 설정이 있습니까? 또한 브라우저에서 생성 된 페이지의 소스를 확인하십시오. – PanJanek
나는 다음과 같은 경로를 설정 한 : routes.MapRoute ( 는 "검색", // 경로 이름 "를 검색/{검색 텍스트}", // 매개 변수를 URL = "홈" 새로운 {컨트롤러, 액션 = " Search ", searchText =" "} // 매개 변수 기본값 ); –