2013-12-22 2 views
3

MVC 4 사이트에는 _Layout 마스터 페이지에 정의 된 공통 최상위 메뉴가 있습니다. 그 메뉴에서 나는 거의 stackoverflow 사이트에서 메뉴와 같은 검색 입력 텍스트 상자가 있지만 검색 입력 텍스트 필드의 제출 버튼을 별도로 가지고 있습니다.MVC의 레이아웃 페이지에서 양식을 제출하는 방법은 무엇입니까?

버튼을 눌렀을 때 작업을 실행하고 해당 컨트롤러에 양식을 제출하려면 어떻게해야합니까? MVC에서 가능합니까?

Here's 형태의 코드 :

<form class="navbar-form navbar-left" role="search"> 
    <div class="form-group"> 
     <input type="text" id="teste" data-provide="typehead" class="form-control" placeholder="Procurar" autocomplete="off"> 
    </div> 
    <button type="submit" class="btn btn-default"><span class="glyphicon glyphicon-search"></span></button> 
</form> 

답변

3

로지에 (Rogier)의 대답은 정확하지만 내가 양식 태그를 통지 몇 가지 HTML 속성이 있습니다.이 경우 Html.BeginForm()의 다른 오버로드를 사용해야합니다.

@using (Html.BeginForm("action", "controller", 
    FormMethod.Post, new { @class = "navbar-form navbar-left", role = "search" })) 
{ 
    // ... 
} 

class은 C#의 키워드이므로 class이라는 접두사가 붙는 @이 필요합니다. 그것 없이는 오류가 발생합니다.

위의 코드는 귀하가 POSTing이라는 가정하에 작성되었습니다. GET을 대신 사용하는 경우 양식 방법을 FormMethod.Get으로 변경하면됩니다.

+1

감사합니다 존, 매력처럼 작동합니다. 그리고 CSS 스타일. – gog

+0

@ggui 여러분을 환영합니다. –

6

대신 자신의 형태를 만드는 MVC 면도기 구문을 사용

@using(Html.BeginForm("MyAction", "MyController")) 
{ 
    <div class="form-group"> 
    <input type="text" id="teste" data-provide="typehead" class="form-control" placeholder="Procurar" autocomplete="off"></div> 
    <button type="submit" class="btn btn-default"><span class="glyphicon glyphicon-search"></span></button> 
} 
+0

이 양식에 사용하는 CSS im에 관해서는 귀하의 대답은 맞지만 다른 하나는 더 완전합니다. 그러나 어쨌든 고마워. – gog

+1

나는 그것을 알지만, 나는 당신을 위해 코드를 만들 사람이 아닙니다. 올바른 방향으로 뉘앙스를주었습니다. 매개 변수 목록을 확인했다면 메서드에서 예상되는 것이 명확하게 나타 났을 것입니다 :-) – YesMan85

+0

Im은 나를 위해 코드를 작성할 것을 기대하지 않습니다. 귀하의 게시물이 유일한 경우 나는 아마도 옳은 대답으로 투표. – gog

관련 문제